Как щелкнуть элемент, который невидим в Selenium WebDriver с помощью C #? - PullRequest
0 голосов
/ 16 ноября 2018

Мой код:

Actions a = new Actions(driver);
            a.MoveToElement(driver.FindElement(By.LinkText("Master Data"))).Build().Perform();
            driver.FindElement(By.LinkText("Suppliers")).Click();

Но это не работает

1 Ответ

0 голосов
/ 16 ноября 2018

У вас есть два подхода.Селен был специально написан, чтобы не допустить взаимодействия со скрытыми элементами.Обоснование состоит в том, что если человек не может выполнить это действие, то и Selenium не должен.Поэтому, чтобы выполнить щелчок через Selenium, вы должны выполнить действие, которое пользователь должен сделать, чтобы сделать эту кнопку видимой (например, событие при наведении курсора мыши, щелкнуть другой элемент и т. Д.), А затем выполнить щелчок, когда он станет видимым.

Однако Seleniumпозволяет выполнять Javascript в контексте элемента, поэтому вы можете написать Javascript для выполнения события click, даже если оно скрыто.

Чтобы щелкнуть скрытый элемент, вы можете использовать JavascriptExecutor спараметр "arguments [0] .click ();"

element = driver.FindElement(By.LinkText("Suppliers")).Click();
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("arguments[0].click();", element);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...