перемещаться по таблице в селене - PullRequest
1 голос
/ 09 февраля 2010

Предположим, у меня есть простая таблица, например:

Smith    |  Select
Jones    |  Select
Johnson  |  Select

И мне нужно написать тест Selenium, чтобы выбрать ссылку, соответствующую Джонсу. Я могу сделать это, нажав «Выбрать» во 2-й строке, но я бы предпочел, чтобы он нашел, где находится «Джонс», и щелкнул соответствующий «Выбрать». Я думаю, что мне может понадобиться включить JQuery для этого?

Ответы [ 2 ]

1 голос
/ 22 июня 2010

Используйте выражение xpath, например "// tc [.// text () = 'Jones'] /../ tc [2] / a", которое ищет ячейку таблицы с текстовым содержимым 'Jones', а затем Переходит к родительскому элементу этой ячейки, выбирает вторую ячейку таблицы этого родительского элемента и затем ссылку внутри второй ячейки таблицы.

0 голосов
/ 15 августа 2012

Если вы хотите использовать jQuery, вот некоторая информация:

  • Сначала вы можете прочитать jquery из файла jquery.js или jquery.min.js.
  • Затем с помощью execute_script (jquery) для динамического включения jquery.
  • Теперь вы можете взаимодействовать с jquery.

вот код:

browser = webdriver.Firefox() # Get local session of firefox

with open('jquery.min.js', 'r') as jquery_js: #read the jquery from a file
    jquery = jquery_js.read()
    browser.execute_script(jquery)  #active the jquery lib

#now you can write some jquery code then execute_script them
js = """
    var str = "div#myPager table a:[href=\\"javascript:__doPostBack('myPager','%s')\\"]"
    console.log(str)
    var $next_anchor = $(str);
    if ($next_anchor.length) {
        return $next_anchor.get(0).click(); //do click and redirect
    } else {
        return false;
    }""" % str(25) 

success = browser.execute_script(js)
if success == False:
    break
...