如何在Selenium WebDriver中获取标签文本的值

时间:2019-08-25 12:54:59

标签: java selenium selenium-webdriver

我正在尝试在Selenium Web驱动程序(java)中获取permission key的值,但是我无法识别该元素。谁能帮我识别该元素并获取值"4BF12-50763-166E0"

有9个span类具有相同的名称,很难识别相同的名称。

网页部分如下所示,我想采用以下每个元素值,如versionstatus等。所有这些都存在于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); 

enter image description here

enter image description here enter image description here

2 个答案:

答案 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',因为我从您的图像中看到了。