以下是我要点击的链接:
<a href="#" onclick="OpenAddKeywords();return false;" id="btnAddKeywords">Add Keywords</a>
我尝试了一些选项(如下所列),但它们没有用;任何想法?
self.br.find_element_by_xpath("//*[@id='btnAddKeywords']").click()
self.br.execute_script("OpenAddKeywords();return false;")
这是我为execute_script
所犯的错误:
Message: u'Error Message => \'Can\'t find variable: OpenAddKeywords\'\n caused by Request =>
这是我为xpath
获得的那个:
Message: u'Error Message => \'Unable to find element with xpath \'//*[@id=\'btnAddKeywords\']\'\'\n caused by Request =>
答案 0 :(得分:5)
正如我在自己的问题here中提到的那样,问题将通过ActionChains
类来解决;这里有一个简短的代码:
el = driver.find_element_by_id("someid")
webdriver.ActionChains(driver).move_to_element(el).click(el).perform()
主要问题是,在某些情况下,特别是当你的页面中有一些javascript代码时,DOM会发生变化,你之前找到的元素会被破坏。 'ActionChains'将保持活着以执行操作。
答案 1 :(得分:3)
您可以尝试使用xpath,如下所示。它对我有用,因为我使用过上一个项目。
driver.find_element_by_xpath("xpath").click()
请试一试......