我正在尝试在Selenium Web驱动程序(java)中获取permission key
的值,但是我无法识别该元素。谁能帮我识别该元素并获取值"4BF12-50763-166E0"
。
有9个span类具有相同的名称,很难识别相同的名称。
网页部分如下所示,我想采用以下每个元素值,如version
,status
等。所有这些都存在于span类中,如下图所示。
任何建议都会有很大帮助。
Version 1.2
Status Enabled
Days left 373
Permission KEY 4BF12-50763-166E0
Permission Serial Number 99678905096711
Subscription End Date 2020-08-31
随附了HTML示例。
我已经尝试过了,但是它只是选择"Permission KEY"
。
WebElement details = driver.findElement(By.xpath("//b[text()='Permission KEY']"));
String title = details.getAttribute("title");
String label = details.getText();
System.out.println("Title is " +title);
System.out.println("Label is" +label);
答案 0 :(得分:0)
在这种情况下,您可以在“权限键”中找到所需的文本,然后转到祖先元素,然后转到包含该值的第二个跨度。
XPath:
String xpath = "//b[text()='Permission Key']/ancestor::dd/span[2]";
WebElement spanElement = driver.findElement(By.xpath(xpath));
spanElement.getText(); // Will give you '4BF12-50763-166E0'
重要提示:您可以将“权限密钥”更改为其他任何值,例如“ Version”和 IF ,它们遵循相同的模式,因此适用于全部,例如:
String xpath = "//b[text()='Version']/ancestor::dd/span[2]";
WebElement spanElement = driver.findElement(By.xpath(xpath));
spanElement.getText(); // Will give you '1.2'
答案 1 :(得分:0)
您可以在preceding-sibling
中使用xpath
策略,请尝试以下方法:
WebElement key = driver.findElement(By.xpath("//span[@class='pull-right property-value' and ./preceding-sibling::span/b[contains(text(),'Permission KEY')]]"));
System.out.println("Permission KEY : " +key.getText());
请确保这是正确的类名:@class='pull-right property-value'
,因为我从您的图像中看到了。