如何使用Selenium WebDriver单击非锚标记?

时间:2017-02-06 18:23:39

标签: python selenium selenium-webdriver webdriver

我正在使用Selenium WebDriver对网站进行自动化测试。我已经成功点击了众多菜单和指向某个点的链接。

我正在使用的网站有时会生成如下所示的链接:

<U onclick="HourglassSubmitItem(document.all('PageName').value, '00000001Responsibility Code')">Responsibility Code</U>

我正在尝试使用webdriver的.click功能单击此链接但没有成功。

使用此:

page.find_element_by_xpath("//u[contains(text(),'Responsibility Code')]")

成功找到上面的U标记。但是当我将.click()添加到此xpath的末尾时,不执行单击。但它也不会产生错误。所以,我的问题是可以使用Selenium来模拟不是anchor()标记的HTML标记的点击吗?如果是这样,怎么样?

我还会说我无法控制我正在使用的页面,因此无法更改为。

我希望社群可以提供任何指导。

谢谢你的帮助,

克里斯

2 个答案:

答案 0 :(得分:0)

有时使用JavaScript可以解决&#34;点击&#34;问题:

element = page.find_element_by_xpath("//u[contains(text(),'Responsibility Code')]")
page.execute_script('arguments[0].click();', element)

答案 1 :(得分:0)

在这种情况下,您可以选择JavaScript。

WebElment  element = page.find_element_by_xpath("//u[contains(text(),'Responsibility Code')]")

JavaScriptExecutor executor = (JavaScriptExecutor)driver;

executor.ExecuteScript("arguments[0].click();", element);