Selenium говорит, что элемент нажал «успешно», но на самом деле он не нажал - PullRequest
0 голосов
/ 20 января 2020

enter image description here

У меня есть сценарий, в котором мне нужно нажать кнопку Продолжить. Даже после того, как я дал сообщение печати после функции щелчка. Сообщение печатается, но кнопка не нажимает. Я попытался java исполнитель сценария, явное ожидание (elementtobeclickable), но по-прежнему не щелкает. Это другое решение. Это то, что я пробовал до сих пор

    By click_continue= By.xpath("//input[@id='btnWFContinue']");

    if(driver.findElement(click_continue)!=null) {      
    waitVar.until(ExpectedConditions.elementToBeClickable(driver.findElement(click_continue)));
    WebElement ele = driver.findElement(click_continue);
   JavascriptExecutor executor = (JavascriptExecutor)driver;
    executor.executeScript("arguments[0].click();", ele);
    log.info("Clicked on Continue!!!");

 /*
WebElement element = driver.findElement(click_continue);
Actions actions = new Actions(driver);
actions.moveToElement(element).click().build().perform();        
driver.findElement(click_continue).click();    */
   }else {
  log.info("Continue button is not present moving to next step");
 }

Ответы [ 2 ]

0 голосов
/ 21 января 2020

попробуйте поместить оператор ожидания перед оператором if. Вполне возможно, что код выполняется до загрузки элемента и код переходит к другой части.

0 голосов
/ 21 января 2020

Откройте нужную страницу в браузере и откройте консоль браузера. Выполните приведенный ниже код в том же $ ("input [id = 'btnWFContinue']"). Click () или document.getElementById ("btnWFContinue"). Click ()

Если элемент кликабелен, то указанная выше команда javascript должна изменить веб-страницу. Используйте то же самое в вашем сценарии. Другой - нет события щелчка, связанного с вашим элементом.

...