gpt4 book ai didi

selenium - 通过文本查找元素并获取 xpath - selenium webdriver junit

转载 作者:行者123 更新时间:2023-12-04 02:32:58 25 4
gpt4 key购买 nike

我的网页中有一个 9 行 6 列的表格。我想搜索文本“MakeGoodDisabled-Programwise_09_44_38_461(n)”并获取单元格的xpath。我使用了以下内容但它失败了,因为它无法在页面上找到文本。你能帮忙吗?我正在使用 Selenium Webdriver Junit 对此进行编码。

List < WebElement > links = driver.findElements(By.tagName("td"));

Iterator < WebElement > itr = links.iterator();
while (itr.hasNext()) {
String test = itr.next().getText();

if (test.equals("MakeGoodDisabled-Programwise_09_44_38_461(n)")) {
String xpath = driver.findElement(By.name(test)).getAttribute("xpath");
System.out.println(xpath);
}
}

最佳答案

您还可以使用它来爬行并生成 xpath:

调用下面的方法

generateXPATH(element, "");

输出将类似于:
/html[1]/body[1]/div[5]/div[1]/div[2]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/form[1]/div[2]/div[1]/input[2]

方法
private String generateXPATH(WebElement childElement, String current) {
String childTag = childElement.getTagName();
if(childTag.equals("html")) {
return "/html[1]"+current;
}
WebElement parentElement = childElement.findElement(By.xpath(".."));
List<WebElement> childrenElements = parentElement.findElements(By.xpath("*"));
int count = 0;
for(int i=0;i<childrenElements.size(); i++) {
WebElement childrenElement = childrenElements.get(i);
String childrenElementTag = childrenElement.getTagName();
if(childTag.equals(childrenElementTag)) {
count++;
}
if(childElement.equals(childrenElement)) {
return generateXPATH(parentElement, "/" + childTag + "[" + count + "]"+current);
}
}
return null;
}

关于selenium - 通过文本查找元素并获取 xpath - selenium webdriver junit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18510576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com