У меня есть элемент на веб-странице, который становится видимым только после нажатия его родительского элемента. Итак, после нажатия демонстрации в списке демонстраций, отображается строка значков, которые представляют действия для выбранной демонстрации. Следующий код прекрасно работает как с WebDriver и chromedriver:Не удается щелкнуть элемент с помощью IEDriverServer
demo.click(); //click demo
waitForElementIsDisplayed(demoReservation_btn); //wait until reservation icon is displayed
demoReservation_btn.click(); //click icon
Первоначально я получал StaleElementReferenceException и я попытался это исправить, имея попробовать/поймать блок внутри цикла в то время, что будет продолжать цикл, пока значок не был нажат , Это привело к сбою IEDriverServer после нескольких циклов.
Я также попробовал оборачивать его в действии, как так:
Action action = new Action(driver);
action.click(demo).click(demoReservation_btn).build().perform()
Это приводит к NoSuchElementException.
Я знаю, что есть некоторые проблемы, упомянутые в documentation о фокусе браузера и зависании элементов, но я не верю, что это проблема. Я пробовал пару других вещей, таких как добавление moverToElement к действию, зависающее над элементом, но не имело успеха с ними. Я считаю, что одним из возможных решений является использование исполнителей javascript, но я хотел бы избежать этого подхода, если это возможно, любые другие предложения?
EDIT
IEDriverServer установки:
File file = new File("IEDriverServer.exe");
System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
driver = new InternetExplorerDriver();
driver.manage().window().maximize();
return driver;
Как только обратитесь к этому: ** http: //stackoverflow.com/questions/30660578/unable-to-click-the-link-on-ie-using-iedriver/31002321#31002321**. –
, который является частью необходимой конфигурации для работы IEDriverServer. Я бы не дошел до того, что я сейчас, не сделав этого. – Cathal
Использовать 'WebDriverWait wait = new WebDriverWait (драйвер, 10);' с ExpectedConditions – Madhan