当使用selenium web驱动程序将div + link与FakeAnchor类一起链接时,无法单击自定义链接

时间:2016-09-04 04:58:30

标签: selenium selenium-webdriver webdriver

使用selenium web驱动程序将div +链接到FakeAnchor类时无法单击自定义链接

在我的Ajax应用程序中,我们在div中有下拉+链接(自定义),我想点击自定义链接。我有定位器,它与旧的selenium的Customize链接工作正常但它没有最新的web驱动程序。任何人都可以指出我的问题或提出一些建议吗?

预期:

  

单击“自定义”链接应打开受尊重的选项(它实际打开对话框)。

实际:

  

由于如此复杂的页面DOM没有实际的href或锚标记,定位器点击下拉按钮而不是自定义链接。

定位器:

css=div[id$='_repeatDesc'][class='FakeAnchor']

HTML:

<div id="zcs1_repeatDesc" class="FakeAnchor" style="cursor: pointer;">Customize</div> 

代码:

webDriver().findElement(By.cssSelector("div[id$='_repeatDesc'][class='FakeAnchor']")).click();

UI element and DOM

1 个答案:

答案 0 :(得分:1)

我认为您的定位器不是唯一的,可能是定位下拉元素,这就是它点击下拉按钮而不是自定义链接的原因。

您应该尝试使用By.xpath()text()节点来定位此元素,如下所示: -

webDriver().findElement(By.xpath(".//div[text() = 'Customize']")).click();

或者我在HTML元素中看到id属性,如果它是唯一的,我将找到欲望元素并且它没有动态更改,您可以尝试使用By.id(),如下所示: -

webDriver().findElement(By.id("zcs1_repeatDesc")).click();

已修改: - 如果您想使用JavascriptExecutor点击,请尝试以下操作: -

((JavascriptExecutor)driver).executeScript("arguments[0].click()", webDriver().findElement(By.xpath(".//div[text() = 'Customize']")));