我的网站顶部有一些按钮。 单击时,将出现一个新的AJAX部分。
我对HTML不太熟悉,但按钮“添加”(此按钮是我的目标)以某种方式位于<span>
。
<!DOCTYPE html>
<html slick-uniqueid="3">
<head></head>
<body class="newui">
<div class="pagewrapper ">
<div class="section shadow" data-form-element="SectionHeading">
<div class="section-header">
<div class="section-title"></div>
<div class="section-nav">
<ul>
<li class="add u-yellow">
<span></span>
<span style="background-color: transparent;">
Add
</span>
我在Selenium中使用此代码
driver.findElement(By.xpath("//li[5]/span[2]")).click();
但是Selenium无法找到该按钮也无法点击它。
它返回错误
线程“main”中的异常org.openqa.selenium.WebDriverException:未知错误:元素在点(1776,32)处不可点击。其他元素将收到点击: (会议信息:chrome = 40.0.2214.115) (驱动程序信息:chromedriver = 2.14.313457(3d645c400edf2e2c500566c9aa096063e707c9cf),platform = Windows NT 6.3 x86_64)(警告:服务器未提供任何堆栈跟踪信息) 命令持续时间或超时:51毫秒
有人可以帮我吗?
感谢。
答案 0 :(得分:1)
可能是li
元素实际上是可点击的:
driver.findElement(By.cssSelector("li.add.u-yellow")).click();
答案 1 :(得分:0)
我找到了一个很好的解决方案。 基本上我使用FirePath(Firefox附加组件)来查找CSS或XPath位置,并将其用于我的webdriver代码。 Firepath告诉我按钮有CSS位置
.add.u-yellow>span
我把它放在我的代码中
driver.findElement(By.cssSelector(".add.u-yellow>span")).click();
......它有效:)
我不熟悉Javascript,所以我不知道为什么.add.u-yellow>span
有效。但FirePath似乎是帮助Webdriver开发人员的好工具:)
答案 2 :(得分:0)
这可能是很多事情。
您可以尝试按其他人已建议的那样点击父元素:
driver.findElement(By.cssSelector("li.add.u-yellow")).click();
或者,您可以绑定span元素的类:
driver.findElement(By.cssSelector("span[style='background-color: transparent;']")).click();