Ban*_*ngh 5 java selenium xpath automation selenium-webdriver
我不得不重新测试xpath,以前它工作正常,但现在它给了我一个错误。
我也尝试过使用不同的定位器,例如id,name。但仍然得到同样的错误。
package staging;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class login {
public static void main (String[]args){
System.setProperty("webdriver.gecko.driver","C:\\Program Files\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
//opening the browser
driver.get("https://staging.keela.co/login");
//logging
driver.findElement(By.xpath("//*[@id='login-email']")).sendKeys("bandanakeela@yopmail.com");
driver.findElement(By.xpath("//*[@id='login-password']")).sendKeys("keela");
driver.findElement(By.xpath("//*[@id='login-form']/div[3]/div/button")).click();
}
}
Run Code Online (Sandbox Code Playgroud)
当您访问 urlhttps://staging.keela.co/login时,Ajax 加载器会阻塞 UI,因此我们必须等待 Ajax 加载器完成加载所有 WebElement,并且 和email字段password变得可见。为了实现这一点,我们将引入ExplicitWaitieWebDriverWait并将ExpectedConditions其设置elementToBeClickable为该email字段。这是工作代码块:
System.setProperty("webdriver.gecko.driver","C:\\Utility\\BrowserDrivers\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
driver.get("https://staging.keela.co/login");
WebDriverWait wait = new WebDriverWait (driver, 15);
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@id='login-email']")));
element.sendKeys("bandanakeela@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();
Run Code Online (Sandbox Code Playgroud)