如何修复不适用于网站的点击

问题描述 投票:0回答:1

登录的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();

我也试过了其他点击。此代码单击但没有任何反应。既不显示下一页也不显示任何错误。我已尝试与其他网站相同的代码,这些工作正常。相同网站的相同代码在同一台笔记本电脑上工作正常,但登录为不同的人。

selenium selenium-webdriver xpath css-selectors webdriverwait
1个回答
0
投票

该元素是一个AJAX元素,因此要标识为elementToBeClickable引入WebDriverwait所需的元素,您可以使用以下任一解决方案:

  • cssSelectornew WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input[id$='login_btn'][name$='login_btn'][value='Login']"))).click();
  • xpathnew WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[contains(@id, 'login_btn') and contains(@name, 'login_btn')][@value='Login']"))).click();
© www.soinside.com 2019 - 2024. All rights reserved.