【问题标题】:Unable to click on an element using Selenium无法使用 Selenium 单击元素
【发布时间】:2017-07-25 18:27:22
【问题描述】:
<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();

【问题讨论】:

  • 我也用过javascript方法点击..它不起作用
  • 您是否遇到了 NoSuchElement 等异常?
  • 元素是否可点击?
  • 是的,它是可点击的。代码正在传递,但没有发生操作
  • 仅在调试模式下工作

标签: java selenium xpath appium


【解决方案1】:

我猜你的html 内部有问题,因为javascript 没有正确定义。

您的 html 代码请参见下面的代码行。

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

修改你的html后看下面的代码行。

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

现在尝试使用以下任何一种方法点击webelement

试试这种方式点击车辆元素。

driver.findElement(By.xpath("//a/span[contains(text(), 'Vehicles (1)')]")).click();

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

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

【讨论】:

  • 嗨..它不工作..它在调试模式下工作过一次..但在运行时它不工作
  • 你能分享页面网址吗?
  • @ janish kapadia.. 它得到了解决.. 它以某种方式被禁用.. 需要启用该元素
猜你喜欢
  • 2016-09-05
  • 2018-05-26
  • 2017-10-11
  • 2022-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多