我正在尝试在电子商务页面上下订单,并且能够成功找到元素以获取密码,但是当我尝试输入密码时,我会遇到错误P>
线程" main" org.openqa.selenium.elementnotvisible exception中的例外:元素不可见
注意:有时它可以正常工作,但有时会丢弃上述错误。
有人可以提供解决方案,以及为什么测试引发此错误。
这是元素的HTML代码
这是以下代码
System.setProperty("webdriver.chrome.driver", "C:\Users\AAA\Desktop\Softwares\chromedriver.exe");
WebDriver driver=new ChromeDriver();
driver.get("http://www.flipkart.com");
//driver.manage().window().maximize();
driver.findElement(By.className("LM6RPg")).sendKeys("Shirts");
driver.findElement(By.className("vh79eN")).click();
driver.findElement(By.xpath(".//*[@id='products']/div/div[1]/div[1]/div/div[2]/div[1]/a")).click();
driver.findElement(By.xpath(".//*[@id='fk-mainbody-id']/div/div[7]/div/div[3]/div/div/div[5]/div[3]/div[2]/a/div/div")).click();
//driver.findElement(By.xpath(".//*[@id='fk-mainbody-id']/div/div[7]/div/div[3]/div/div/div[5]/div[3]/div[2]/div/div/span")).click();
driver.findElement(By.xpath(".//*[@id='fk-mainbody-id']/div/div[7]/div/div[3]/div/div/div[6]/div/div[2]/div[1]/div/div[2]/div/div[1]/form/input[8]")).submit();
driver.findElement(By.xpath(".//*[@id='fk-mainhead-id']/div[1]/div/div[2]/div[3]/div[1]/a/span[1]")).click();
// driver.findElement(By.partialLinkText("VIEW CART")).click();
driver.findElement(By.xpath(".//*[@id='view-cart-form']/button")).click();
driver.findElement(By.id("email")).sendKeys("9840123453");
driver.findElement(By.xpath(".//*[@id='ng-app']/div/div[2]/ul/li[1]/div/div[2]/div[1]/div[2]/div[1]/form/input")).click();
//WebDriverWait wait = new WebDriverWait(driver,30);
//wait.until(ExpectedConditions.presenceOfElementLocated(By.id("password")));
driver.findElement(By.id("password")).sendKeys("bbb181");
driver.findElement(By.xpath(".//*[@id='ng-app']/div/div[2]/ul/li[1]/div/div[2]/div[1]/div[2]/div[1]/form/input")).click();
您评论几乎很好的解决方案。您写道:
WebDriverWait wait = new WebDriverWait(driver,30);
wait.until(ExpectedConditions.presenceOfElementLocated(By.id("password")));
更改以下条件:
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("password")));
这应该有效。