2017-10-13 144 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怎麼知道你必須等待? –