我正在尝试在电子商务页面下订单,我能够成功找到密码元素,但是当我尝试输入密码时,我收到错误
线程“main”中的异常org.openqa.selenium.ElementNotVisibleException:元素不可见
注意:有时它正在运行,但有时会抛出上述错误。
有人可以提供解决方案以及为什么测试会抛出此错误。
以下是元素
的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();
答案 0 :(得分:1)
你评论几乎是好的解决方案。你写道:
WebDriverWait wait = new WebDriverWait(driver,30);
wait.until(ExpectedConditions.presenceOfElementLocated(By.id("password")));
更改条件:
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("password")));
这应该有用。