Как заставить селен ждать, пока текст в определенном месте - PullRequest
0 голосов
/ 19 сентября 2019

У меня вопрос по поводу ожидания селена.Я хочу, чтобы селен подождал, пока текст не отобразится в определенном xpath.текст: «Торговля Хенсли и Уоркман» xpath: // td [@ class = 'td_company ng-star-вставлен'] Я попытался подождать функцию before.attributeTobe, но не могу заставить ее ждать.Что я делаю неправильно (я думаю, что до тех пор, пока строка не работает, порядок или условие верны)

public static void getWebElementByXpathWithWaitTextToBeSeen()
    {
        WebDriver driver2 = WebDriverMgr.getDriver();
      //  driver2.manage().timeouts().implicitlyWait(IMPLICIT_WAITE, TimeUnit.SECONDS);
        WebDriverWait wait = new WebDriverWait(driver2,EXPLICIT_WAITE);
        wait.until(ExpectedConditions.attributeToBe(By.xpath("//td[@class='td_company ng-star-inserted']"),"Hensley and Workman Trading","true"));
    }

Из Dev Tool: enter image description here

Ответы [ 3 ]

4 голосов
/ 19 сентября 2019

Чтобы дождаться отображения текста Hensley and Workman Trading в WebElement , вы можете использовать следующие Стратегии локатора :

new WebDriverWait(driver, 20).until(ExpectedConditions.textToBePresentInElementLocated(By.xpath("//td[@class='td_company ng-star-inserted']"), "Hensley and Workman Trading"));
0 голосов
/ 24 сентября 2019

OpenQA.Selenium.Support.UI реализует функциональность wait.Until(expectedCondition).Вот пример того, что вы пытаетесь сделать:

  public static void WaitForElementText(this IWebDriver driver, By by, string text)
  {
      var wait = new WebDriverWait(driver, TimeoutScope.Current.Timeout);
      wait.Until(d => d.FindElement(by).Text == text);
  }

В вашем случае это будет выглядеть так:

      var wait = new WebDriverWait(driver, TimeoutScope.Current.Timeout);
      wait.Until(d => d.FindElement(By.XPath("//td[@class='td_company ng-star-inserted']")).Text == text);
0 голосов
/ 19 сентября 2019

Попробуйте

" Hensley and Workman Trading " // With the extra spaces

вместо

"Hensley and Workman Trading"

Не положительно, но эти пробелы могут сбрасывать его?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...