登录的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();
我也尝试了其他点击。 这段代码单击了一下,但没有任何反应。没有出现下一页,也没有出现任何错误。我在其他网站上尝试过相同的代码,但效果很好。同一网站上的相同代码在同一台笔记本电脑上可以正常工作,但以不同的人身份登录。
答案 0 :(得分:0)
该元素是AJAX元素,因此请确定为 elementToBeClickable 引入 WebDriverwait 所需的元素,并且可以使用以下任一解决方案:< / p>
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();