次のような単純なテーブルがあるとします。
Smith | Select
Jones | Select
Johnson | Select
そして、Selenium テストを作成して、Jones に対応するリンクを選択する必要があります。2行目の「選択」をクリックさせることもできますが、「ジョーンズ」がどこにあるかを見つけて、対応する「選択」をクリックさせたいと思います。これを達成するには、JQueryを組み込む必要があるかもしれないと考えていますか?
次のような単純なテーブルがあるとします。
Smith | Select
Jones | Select
Johnson | Select
そして、Selenium テストを作成して、Jones に対応するリンクを選択する必要があります。2行目の「選択」をクリックさせることもできますが、「ジョーンズ」がどこにあるかを見つけて、対応する「選択」をクリックさせたいと思います。これを達成するには、JQueryを組み込む必要があるかもしれないと考えていますか?
"//tc[.//text() = 'Jones']/../tc[2]/a" のような xpath 式を使用します。これは、テキスト コンテンツが 'Jones' であるテーブル セルを検索し、次にナビゲートします。そのセルの親を選択し、その親の 2 番目のテーブル セルを選択してから、2 番目のテーブル セル内のリンクを選択します。
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