无法使用Selenium单击元素

时间:2017-03-06 01:38:38

标签: java selenium xpath appium

<div id="_PHYLINSPortlet_WAR_PHYLINSPortlet_INSTANCE_o3P5_:form_PolicyContent_UI2:flatQuoteMenuBar:j_id7:VEHICLES" class="iceMnuBarItem portlet-menu-cascade-item">
<a class="iceLink" href="javascript:;" onclick="return Ice.Menu.cancelEvent(event);">
<span class="iceMnuBarItemLabel">Vehicles (1)</span>
</a>
</div>

我必须点击vehicles (1)菜单 我尝试了很多xpath选择器。 gettext()正在运作,但.click不是。

//driver.findElement(By.xpath("//*[@id='_PHYLINSPortlet_WAR_PHYLINSPortlet_INSTANCE_o3P5_:form_PolicyContent_UI2:flatQuoteMenuBar:j_id7:VEHICLES']/a/span")).click();   

我的第二个xpath:

//driver.findElement(By.xpath("//span[(@class='iceMnuBarItemLabel') and contains (text(),'Vehicles')]")).click();

1 个答案:

答案 0 :(得分:0)

我认为由于html javascript未正确定义,因此问题在<a class="iceLink" href="javascript:;" onclick="return Ice.Menu.cancelEvent(event);"> 内。

您的HTML代码见下面的代码行。

<a class="iceLink" href="#" onclick="return Ice.Menu.cancelEvent(event);">

修改好html后,请看下面的代码行。

webelement

现在尝试使用以下任何一种方法点击driver.findElement(By.xpath("//a/span[contains(text(), 'Vehicles (1)')]")).click();

请尝试以此方式点击车辆元素。

WebElement vehicle = driver.findElement(By.xpath("//a/span[contains(text(), 'Vehicles (1)')]"));
((JavascriptExecutor) driver).executeScript("arguments[0].click();", vehicle);
  

OR

使用Java脚本执行器单击Vehicle元素。

TimeoutException