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



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

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

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

我正在尝试使用网络驱动程序的 .click 功能单击此链接,但没有成功。

使用这个:

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

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

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

我将不胜感激社区可以提供的任何指导。

谢谢你的帮助,

克里斯

有时使用 JavaScript 可以解决"点击"问题:

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

在这种情况下,你可以更喜欢JavaScript。

WebElment  element = page.find_element_by_xpath("//u[contains(text(),'Responsibility Code')]")
JavaScriptExecutor executor = (JavaScriptExecutor)driver;
executor.ExecuteScript("arguments[0].click();", element);

最新更新