Как исправить клик, который не работает специально для веб-сайта - PullRequest
0 голосов
/ 11 февраля 2019

HTML-код для входа в систему выглядит следующим образом:

<input id="login:login_btn" name="login:login_btn" onclick="A4J.AJAX.Submit('login',event,{'oncomplete':function(request,event,data){},'similarityGroupingId':'login:login_btn','parameters':{'login:login_btn':'login:login_btn'} } );return false;" value="Login" style="width:100%;margin-left:7px;" type="button">

Я пытаюсь сделать простой щелчок по кнопке входа в систему.Мой код здесь:

System.setProperty("webdriver.chrome.driver","C:\\Users\\SmitaThakur\\Downloads\\chromedriver_win32\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://myportal-qa.pricechopper.com/mobile/eas/login.seam");
driver.findElement(By.id("login:username")).sendKeys("757823");
driver.findElement(By.id("login:password")).sendKeys("texas5");
driver.findElement(By.id("login:login_btn")).click();

Я пробовал и другие клики.Этот код делает щелчок, но ничего не происходит.Не появляется ни следующая страница, ни ошибка.Я пробовал тот же код с другими веб-сайтами, и они прекрасно работаютОдин и тот же код для одного и того же сайта отлично работает на том же ноутбуке, но с логином другого человека.

1 Ответ

0 голосов
/ 13 февраля 2019

Элемент является AJAX элементом, поэтому определите элемент, который вам нужно вызвать WebDriverwait для elementToBeClickable , и вы можете использовать любое из следующих решений:

  • cssSelector:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input[id$='login_btn'][name$='login_btn'][value='Login']"))).click();
    
  • xpath:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[contains(@id, 'login_btn') and contains(@name, 'login_btn')][@value='Login']"))).click();
    
...