NgWebDriver не может нажать на элемент после миграции версии Angular 6 - PullRequest
0 голосов
/ 26 марта 2019

Текущая конфигурация, которую я использую:

Chrome- 73 Транспортир - 0.12.0 Nunit - 3.11.0 Chromedriver- 3.141.0 Windows - 10

После миграциив Angular 6 моя среда тестирования не нажимает на элементы.Я использую NgWebDriver

Page

<div class="home-page--sections">
<!---->
<a id="menuItemImgBtnTransactions" class="home-page--section" href="/sales/transactions">

Код

 NgWebDriver driver;
 public HomePage(IWebDriver driver)
 {
    this.driver = (NgWebDriver)driver;
 }
 By transactionsTab = By.Id("menuItemImgBtnTransactions");


//driver.WaitForAngular(); // I use wait PageLoad,AsynchronousJavaScript waiters
IWebElement transaction = driver.FindElement(transactionsTab);
transaction.Click();

Я использую обычный WD для целевой страницы (входа в систему), она работает нормально, но когда япопробуйте перейти на страницу транзакции с драйвером ng (множество тестов написано с помощью ngdriver = моя структура)

Я получаю информацию о сеансе OpenQA.Selenium.WebDriverTimeoutException: chrome = 73.0.3683.86 Информация о драйвере: chromedriver = 73.0.3683.68 ()

Есть мысли?

1 Ответ

0 голосов
/ 26 марта 2019

Глядя на ваш код:

By transactionsTab = By.Id("menuItemImgBtnTransactions");


//driver.WaitForAngular(); // I use wait PageLoad,AsynchronousJavaScript waiters
driver.FindElement(transaction));
transaction.Click();

Вы определили свой локатор как transactionsTab, но вы передаете transaction в функцию FindElement(). Не знаю, почему вы определяете локатор как переменную, но при использовании этой стратегии должно работать следующее:

By transactionsTab = By.Id("menuItemImgBtnTransactions");


//driver.WaitForAngular(); // I use wait PageLoad,AsynchronousJavaScript waiters
driver.FindElement(transactionsTab)).Click();

Вы также можете сделать это в одну строку:

driver.FindElement(By.Id(“menuItemImgBtnTransactions”)).Click();

Или, если вы хотите повторно использовать этот WebElement, я бы сделал это:

IWebElement transactions = driver.FindElement(By.Id(“menuItemImgBtnTransactions));
transactions.Click();

Вы можете делать все, что захотите, с элементом transactions.

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