元素不可见错误

时间:2016-04-29 06:03:40

标签: java selenium-webdriver

在网站goIndigo中,导航到查看/更改预订并选择电子邮件itenary,弹出窗口,我想在弹出窗口中使用关闭按钮关闭该弹出窗口:

但我收到的错误是Element不可见;

我的代码如下:

WebDriver drv= new FirefoxDriver();
drv.get("https://book.goindigo.in/?wt_mc=googlesearch.brand&gclid=CjwKEAjwxoG5BRCC7ezlzNmR8HUSJAAre36jSbKPBIdunIi2WUecy4wVPCFnqTv73JMeG95oUjTquxoCRlPw_wcB");
drv.findElement(By.xpath("//a[text()='Flight Status']")).click();
drv.findElement(By.xpath("//a[text()='View / Change Booking']")).click();
drv.findElement(By.xpath("//input[@id='indiGoRetrieveBooking_RecordLocator']")).click();
drv.findElement(By.xpath("//input[@id='indiGoRetrieveBooking_RecordLocator']")).sendKeys("abcdef");
drv.findElement(By.xpath("//input[@id='indiGoRetrieveBooking_EmailAddress']")).sendKeys("pandey");
drv.findElement(By.xpath("//input[@id='emailButtonId']")).click();
String mainhandle = drv.getWindowHandle();
WebElement from =drv.findElement(By.xpath("//div[@class='buttonGlbl']"));
from.click();

2 个答案:

答案 0 :(得分:0)

首先尝试在查找元素之前放置Thread.sleep(),只是等待元素出现。这是快速解决方案,只是为了检查问题是否执行得太快:

drv.findElement(By.xpath("//input[@id='emailButtonId']")).click(); String mainhandle = drv.getWindowHandle(); Thread.sleep(2000); WebElement from =drv.findElement(By.xpath("//div[@class='buttonGlbl']"));

然后,如果一切正常,您可以从sleep()更改为更好的解决方案:

WebDriverWait wait = new WebDriverWait(drv, 10); wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[@class='buttonGlbl']")));

答案 1 :(得分:0)

我认为,你的关闭弹出窗口会出现。

如果您想要关闭该弹出窗口,请使用

Thread.sleep(1000);
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("$('#emailItinerarySuccessModal .indigo-submit').click();");