7

クリックしようとしているリンクは次のとおりです。

<a href="#" onclick="OpenAddKeywords();return false;" id="btnAddKeywords">Add Keywords</a>

いくつかのオプション (以下にリスト) を試しましたが、うまくいきませんでした。何か案は?

  1. self.br.find_element_by_xpath("//*[@id='btnAddKeywords']").click()
  2. self.br.execute_script("OpenAddKeywords();return false;")

これは私が持っているエラーですexecute_script:

メッセージ: u'Error Message => \'Can\'t find variable: OpenAddKeywords\'\n 原因は Request =>

そして、これは私が持っているものですxpath:

メッセージ: u'Error Message => \'Unable to find element with xpath \'//*[@id=\'btnAddKeywords\']\'\'\n 原因は Request =>

4

2 に答える 2

5

ここで私自身の質問で述べたように、問題はActionChainsクラスによって解決されます。簡単なコードは次のとおりです。

el = driver.find_element_by_id("someid")
webdriver.ActionChains(driver).move_to_element(el).click(el).perform()

主な問題は、場合によっては、特にページにいくつかの JavaScript コードがある場合、DOM が変更され、以前に見つけた要素が古くなってしまうことです。「ActionChains」は、アクションを実行するためにそれを維持します。

于 2013-12-08T14:15:17.447 に答える
3

以下のように xpath を使用してみることができます。私は最後のプロジェクトを使用したので、それは私のために働いています。

driver.find_element_by_xpath("xpath").click()

試してみてください...

于 2013-07-15T06:18:03.793 に答える