如何使用 Selenium getText() 方法和 Java 提取文本
How to extract text using Selenium getText() method and Java
我的问题是准确识别网站上的特定文本。
我的实际解决方案是使用 Xpath,它可以工作,但我不想使用 Xpath,我只得到整个字符串,而不仅仅是特定的模式。
我尝试使用 cssSelector,但我没有弄明白。 id="top"
.
相同
我想要这个图案:
Your user name is: username1 ...
Just this part: username1
环境:
openjdk 11 2018-09-25
OpenJDK Runtime Environment 18.9 (build 11+28)
OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)
JUnit5
selenium-java-4.0.0-alpha-1
Eclipse Version: 2021-03 (4.19.0)
HTML:
<vaadin-horizontal-layout style="width: 100%; align-items: center;" id="top" slot="navi">
</iron-icon>
<iron-icon style="cursor: pointer; color: var(--lumo-primary-color); margin-right: 20px;" icon="vaadin:top-o" title="Sitename">
</iron-icon><iron-icon style="cursor: pointer; color: var(--lumo-primary-color); margin-right: 20px;" icon="vaadin:tabs" title="new window">
</iron-icon>
<span style="margin-left: auto; color: var(--lumo-primary-color); margin-right: 20px;">Your user name is: username1</span>
据我所知,它不是一个铁图标。
这是我拥有的,但不是我想要的:
Java 硒 Xpath:
System.out.println("text username");
Assert.assertEquals("Your user name is: username1", driver.findElement(By.xpath("/html/body/vaadin-app-layout/vaadin-horizontal-layout/span")).getText());
System.out.println("Get Text: ");
System.out.println(driver.findElement(By.xpath("/html/body/vaadin-app-layout/vaadin-horizontal-layout/span")).getText());
有没有人知道如何在这个 vaadin 环境中解决特定的 username1 模式?
要提取文本 username1 你必须引入 for the and you can use either of the following :
使用 xpath 和 split()
:
String[] xpathParts = new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//span[contains(., 'Your user name is')]"))).getText().split(" ");
System.out.println(xpathParts[4]);
我的问题是准确识别网站上的特定文本。
我的实际解决方案是使用 Xpath,它可以工作,但我不想使用 Xpath,我只得到整个字符串,而不仅仅是特定的模式。
我尝试使用 cssSelector,但我没有弄明白。 id="top"
.
我想要这个图案:
Your user name is: username1 ...
Just this part: username1
环境:
openjdk 11 2018-09-25
OpenJDK Runtime Environment 18.9 (build 11+28)
OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)
JUnit5
selenium-java-4.0.0-alpha-1
Eclipse Version: 2021-03 (4.19.0)
HTML:
<vaadin-horizontal-layout style="width: 100%; align-items: center;" id="top" slot="navi">
</iron-icon>
<iron-icon style="cursor: pointer; color: var(--lumo-primary-color); margin-right: 20px;" icon="vaadin:top-o" title="Sitename">
</iron-icon><iron-icon style="cursor: pointer; color: var(--lumo-primary-color); margin-right: 20px;" icon="vaadin:tabs" title="new window">
</iron-icon>
<span style="margin-left: auto; color: var(--lumo-primary-color); margin-right: 20px;">Your user name is: username1</span>
据我所知,它不是一个铁图标。
这是我拥有的,但不是我想要的:
Java 硒 Xpath:
System.out.println("text username");
Assert.assertEquals("Your user name is: username1", driver.findElement(By.xpath("/html/body/vaadin-app-layout/vaadin-horizontal-layout/span")).getText());
System.out.println("Get Text: ");
System.out.println(driver.findElement(By.xpath("/html/body/vaadin-app-layout/vaadin-horizontal-layout/span")).getText());
有没有人知道如何在这个 vaadin 环境中解决特定的 username1 模式?
要提取文本 username1 你必须引入
使用 xpath 和
split()
:String[] xpathParts = new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//span[contains(., 'Your user name is')]"))).getText().split(" "); System.out.println(xpathParts[4]);