Java Selenium Webdriver Xpath不工作
我正在尝试使用selenium webdriver单击链接文本,但不起作用 这是照片 在使用firebug的firefox上,我得到了xpathJava Selenium Webdriver Xpath不工作,java,selenium,xpath,selenium-webdriver,Java,Selenium,Xpath,Selenium Webdriver,我正在尝试使用selenium webdriver单击链接文本,但不起作用 这是照片 在使用firebug的firefox上,我得到了xpath html/body/div[1]/div/div/div[2]/div[2]/div[2]/a 我曾经 driver.findElement(By.xpath(“html/body/div[1]/div/div/div[2]/div[2]/div[2]/a”)。单击() 但是仍然不起作用,有什么原因吗?我在html代码中看到name属性,但元素类
html/body/div[1]/div/div/div[2]/div[2]/div[2]/a
我曾经
driver.findElement(By.xpath(“html/body/div[1]/div/div/div[2]/div[2]/div[2]/a”)。单击()代码>
但是仍然不起作用,有什么原因吗?我在html代码中看到name属性,但元素类型是隐藏的。Selenium不与隐藏的元素交互。尝试使用其他路径,如“//input[@id='offerId']/../a
”首先回答您在注释4中的问题,有两种方法可以编写xpath
相对xpath:此xpath以“/”开头,表示从DOM中的特定位置搜索元素
绝对xpath:此xpath以html/body
开头,表示从DOM的第一个标记中搜索元素
相对xpath搜索比绝对xpath搜索快,因为它从文档中的特定位置而不是从DOM的根进行搜索
关于你的主要问题:
请尝试使用以下代码:
driver.findElement(By.xpath(“/*[text()='HTML code']”)和driver.findElement(By.xpath(“/*[text()='Offer Selection']”)
希望这有帮助:)尝试下面的代码,使用部分链接文本单击链接
wait.until(ExpectedConditions.elementToBeClickable(By.partialLinkText("EARN up to 2.5% on")));
driver.findElement(By.partialLinkText("EARN up to 2.5% on")).click();
可能有多种原因。我想到了一些:1)你的HTML截图显示了一些关于iframe的信息;您的场景是否确实涉及到框架?2) 任何以“html”开头的XPath都没有得到正确的优化,几乎可以保证是脆弱的。检查后,代码中根本没有iFrame。。。尝试使用“driver.findelement(By.name)”,但仍然不起作用请澄清“不起作用”!当我尝试“driver.findelement(By.name)”时,消息说找不到元素,name…我还不明白为什么xpath以“body”开头,您使用了什么名称?通过查看您的HTML,我没有看到任何名称属性。我必须同时使用您提供的代码还是只使用其中一个?它会是“driver.findelelement(By.xpath(“/*[text()=”在g...]上赚取高达2.5%”)您可以使用xpath来标识网页上的各个元素。