当前位置: 首页 > 知识库问答 >
问题:

无法使用xpath在webDrive中查找元素

汤承德
2023-03-14

非常感谢您的帮助。

我想知道firebug复制xpath是否总是适用于webdriver。

我有一个带有列表的页面,我可以获得完整的xpath来查找前两个元素,但无法对3、4执行相同的操作。

对于第三个,它不起作用:

WebElement element3=driver.findElement(By.xpath("/html/body/div[6]/div[2]/div/div[3]/div/div[3]/div/div[4]/div/div[4]/div/div/div/div[1]/div[2]/div[1]/div/div[2]/div/div[2]/div[1]/div/div[2]/div[1]/table/tbody[2]/tr[3]/td[5]/div"));

错误:

org.openqa.selenium.NoSuchElementException:无法定位元素:{"method":"xpath","selector":"/html/body/div[6]/div[2]/div/div[3]/div/div[4]/div/div[4]/div/div[1]/div[2]/div[1]/div/div[2]/div/div[2]/div[1]/div/div[2]/div[1]/table/tbody[2]/tr[3]/td[5]/div"}

我的超文本标记语言:

<tr class="GKWRNW-BEX GKWRNW-BLYD GKWRNW-BELB GKWRNW-BON"> 
<td class="GKWRNW-BKW GKWRNW-BIYD x-grid-cell-first explorerGridRow" style="" cellindex="0"> 
<td class="GKWRNW-BKW GKWRNW-BIYD undefined x-treegrid-column explorerGridRow" style="" cellindex="1"> 
<div class="GKWRNW-BMW GKWRNW-BJYD" style=""> 
<div id="x-auto-390" class="GKWRNW-BPLC"> 
<div class="GKWRNW-BMLC"> 
<img style="height: 18px; width: 0px;" src="data:image/gif;=="> 
<img class="GKWRNW-BOLC" style="width: 16px" src="data:image/gif;base64,R0l=="> <span class="GKWRNW-BILC"></span>

共有1个答案

曹旭东
2023-03-14

使用x-path查找元素不是一种有效的方法。因为DOM元素中的任何更改(例如,添加或删除一个新的DOM元素,如div)都会导致x路径的更改。

所以最好对每个DOM元素使用id并使用By.id()-

WebElement element = driver.findElement(By.id("someId::button"));
 类似资料:
  • 我注意到,在selenium webdriver中查找xpath元素的函数text()在这种情况下不起作用: 如您所见,文本“Selecionar”位于按钮标记内,但在文本后还有其他标记,在本例中,当我尝试使用此模式通过xpath查找元素时://*[text()='Selecionar']未找到任何元素。 你们都知道在这种情况下,假设使用元素按钮的文本(因为在其他情况下,它将是唯一的选项),如何查

  • 问题内容: 以下是使用Java的WebDriver代码段: 执行代码后,出现以下异常: 线程“主”中的异常org.openqa.selenium.NoSuchElementException:无法找到元素:{“方法”:“ xpath”,“选择器”:” // html / body / div [2] / span / center / form / table / tbody / tr / td

  • 我想使用selenium单击一个按钮,并在站点的下拉日期选择器中选择该按钮。 我希望单击的按钮以黄色突出显示 http://covid.gov.pk/stats/ict 我正在使用以下xpath。 //*[@id=“datepicker-1361-7562-title”]/strong 这是我正在使用的代码 问题是,我可以点击下拉菜单上的其他元素,但不能点击这个按钮。 运行代码时遇到的错误。 ch

  • 我尝试了xpath和检查,如下所示

  • 我一直在为这个selenium项目苦苦挣扎,一直在寻找与这个问题略有关联的老参考资料或帖子。我承认我不熟悉xpath和selenium,所以希望它可以像修复语法一样简单。我正在使用python 3.6。卢本图19.10上的9,如果这有什么区别的话。 我试图访问的html元素: 我尝试过的代码: 尝试不同的XPath时出现的错误消息: 我检查了火狐来尝试捕获xpath,显示为: 虽然我还不确定如何调