元素不在可点击点

Element is not at clickable point

我已经放置了链接文本并对其进行了更正,但出现了错误,例如 Element ... 在 (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("bandana@yopmail.com");
driver.findElement(By.xpath("//input[@id='login-password']")).sendKeys("keela");
driver.findElement(By.xpath("//button[@class='btn btn-sm btn-block btn-primary']")).click(); 

我注意到在您的代码中,单击 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("bandana@yopmail.com");
driver.findElement(By.xpath("//input[@id='login-password']")).sendKeys("keela");
driver.findElement(By.xpath("//button[@class='btn btn-sm btn-block btn-primary']")).click(); 

参考图片

尝试使用 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("bandana@yopmail.com");

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

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

它在 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("bandana@yopmail.com");

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

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

实际上您的网站加载时间过长,因此您的等待时间可能会增加