元素不在可点击点
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();
实际上您的网站加载时间过长,因此您的等待时间可能会增加
我已经放置了链接文本并对其进行了更正,但出现了错误,例如 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();
实际上您的网站加载时间过长,因此您的等待时间可能会增加