簡體   English   中英

如何使用Selenium WebDriver從變量中提取文本?

[英]How can I extract the text from a variable with Selenium WebDriver?

如果在FireFox上使用“檢查元素”,則會看到以下內容:

<span class="stock-number-value ng-binding">17109 </span>

當我使用driver.getSource()時,該17109被替換為“ vehicle.attributes.stockNumber”。

我的主要目標是使用驅動程序來獲取vehicle.attributes.stockNumber存儲的任何值,但是我無法弄清楚如何使用Selenium獲取該變量的內容。

我懷疑您在角度尚未准備好並且綁定尚未進行數據饋送的過程中太早地獲取源。 我將使用自定義的等待條件函數來等待“股票”具有數值:

WebDriverWait wait = new WebDriverWait(webDriver, 510);
WebElement stock = wait.until(waitForStock(By.cssSelector(".stock-number-value")));
System.out.println(stock.getText());

其中waitForStock類似於以下內容:

public static ExpectedCondition<Boolean> waitForStock(final By locator) {
  return new ExpectedCondition<Boolean>() {
    @Override
    public Boolean apply(WebDriver driver) {
      try {
        WebElement elm = driver.findElement(locator);
        return elm.getText().trim().matches("[0-9]+");
      } catch (NoSuchElementException e) {
        return false;
      } catch (StaleElementReferenceException e) {
        return false;
      }
    }

    @Override
    public String toString() {
      return "stock is not yet loaded";
    }
  };
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM