2017-10-13 113 views
-1

我已经放入了linktext及其更正,但错误如元素...在点(750,38)不可点击。元素不在可点击的点

我试过代码:

driver.get("https://staging.keela.co"); 
WebDriverWait wait = new WebDriverWait (driver, 15); 
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.linkText("Log In"))); 
element.click(); 

//waiting for to load 
driver.findElement(By.xpath("//input[@id='login-email']")).sendKeys("[email protected]"); 
driver.findElement(By.xpath("//input[@id='login-password']")).sendKeys("keela"); 
driver.findElement(By.xpath("//button[@class='btn btn-sm btn-block btn-primary']")).click(); 

回答

1

我在你的代码已经注意到了,那点击Login in按钮后,你不提供任何wait。所以由于这个原因,你会得到一个错误。

我在下面的代码中尝试了下面的代码,它对我来说工作正常。

试试下面的代码。

driver.get("https://staging.keela.co"); 
driver.manage().window().maximize(); 

new WebDriverWait(driver, 15).until(ExpectedConditions.elementToBeClickable(By.linkText("Log In"))); 
driver.findElement(By.linkText("Log In")).click(); 

new WebDriverWait(driver, 10).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//input[@id='login-email']"))); 
driver.findElement(By.xpath("//input[@id='login-email']")).sendKeys("[email protected]"); 
driver.findElement(By.xpath("//input[@id='login-password']")).sendKeys("keela"); 
driver.findElement(By.xpath("//button[@class='btn btn-sm btn-block btn-primary']")).click(); 

参考图片

enter image description here

+0

@Bandana Singh,你试过这段代码吗?请用你的代码替换我的代码,让我对你工作正常吗? –

+0

我试过在这里还是用相同的代码 –

+0

你确定,你把我的代码正确地替换了吗?因为相同的代码工作正常,没有显示任何错误。 –

0

尝试使用JavascriptExecutor

进行点击操作
//Creating the JavascriptExecutor interface object by Type casting  
JavascriptExecutor js = (JavascriptExecutor)driver;  

WebElement button = driver.findElement(By.xpath("//button[@class='btn btn-sm btn-block btn-primary']")); 

//waiting for to load 
driver.findElement(By.xpath("//input[@id='login-email']")).sendKeys("[email protected]"); 

driver.findElement(By.xpath("//input[@id='login-password']")).sendKeys("keela"); 

//Perform Click using JavascriptExecutor   
js.executeScript("arguments[0].click();", button); 
1

它在Chrome中工作正常,我只是增加了等待时间和使用的点击:

System.setProperty("webdriver.chrome.driver", "E:\\software and tools\\chromedriver_win32\\chromedriver.exe"); 

     WebDriver driver=new ChromeDriver(); 
     driver.get("https://staging.keela.co/"); 
     WebDriverWait wait = new WebDriverWait (driver, 50); 
     WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.linkText("Log In"))); 
     element.click(); 

     //waiting for to load 
     driver.findElement(By.xpath("//input[@id='login-email']")).sendKeys("[email protected]"); 

     driver.findElement(By.xpath("//input[@id='login-password']")).sendKeys("keela"); 

     driver.findElement(By.xpath("//button[@class='btn btn-sm btn-block btn-primary']")).click(); 

其实你的网站需要花费太多时间来加载,所以你已经增加了等待时间

+0

你的ID和密码是错误的,不允许登录 – iamsankalp89

+0

哦,非常感谢你。我一直在寻找从顶部到按钮只是为了找到我的代码中的错误。但是狗屎我怎么能忘记增加等待时间。无论如何谢谢你话说。 –

+1

@ iamsankalp89,你可以在'element.click()'之后解释我,你的webdriver怎么知道你必须等待? –