【问题标题】:Extract text with selenium webdriver使用 selenium webdriver 提取文本
【发布时间】:2020-12-11 02:06:27
【问题描述】:
我正在尝试从此代码中返回文本“我的名字是”。文本可以更改,因此我无法在元素定位器中使用它。
<span class="tabComboBoxName" id="tab-ui-id-1607647" aria-hidden="true">My name is</span>
我的最终目标是将此文本与我计算出的变量进行比较,但首先我需要提取文本。
知道如何进行吗?
【问题讨论】:
标签:
selenium
selenium-webdriver
xpath
css-selectors
webdriverwait
【解决方案1】:
要提取文本My name is,您可以使用以下基于Locator Strategies 的java 之一:
-
cssSelector:
System.out.println(driver.findElement(By.cssSelector("span.tabComboBoxName[id^='tab-ui-id-']")).getText());
-
xpath:
System.out.println(driver.findElement(By.xpath("//span[@class='tabComboBoxName' and starts-with(@id, 'tab-ui-id-')]")).getText());
理想情况下,您需要为visibilityOfElementLocated() 诱导WebDriverWait,您可以使用以下任一Locator Strategies:
-
xpath:
System.out.println(new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("span.tabComboBoxName[id^='tab-ui-id-']"))).getText());
-
xpath:
System.out.println(new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//span[@class='tabComboBoxName' and starts-with(@id, 'tab-ui-id-')]"))).getText());