每当我运行我的代码时,我就会弹出。 如何取消该网站的弹出窗口:https://www.goibibo.com/
每当我运行我的代码时,我就会弹出。 如何取消该网站的弹出窗口:https://www.goibibo.com/
package basic;
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
public class goibibo {
private static WebDriver driver = null;
public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
WebDriver driver = new ChromeDriver();
driver.get("https://www.goibibo.com/");
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@id='gosuggest_inputSrc']"))).sendKeys("A");
Thread.sleep(1000);
List<WebElement> myList = new WebDriverWait(driver, 20).until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.xpath("//div[@class='dib marginL10 pad0 textOverflow width90']/div/span")));
for (int i = 0; i < myList.size(); i++)
{
System.out.println(myList.get(i).getText());
if (myList.get(i).getText().equals("Ahmedabad"))
{
myList.get(i).click();
break;
}
}
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//*[@id=\"gosuggest_inputDest\"]"))).sendKeys("Mum");
Thread.sleep(1000);
List<WebElement> Dept = new WebDriverWait(driver, 20).until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.xpath("//div[@class='dib marginL10 pad0 textOverflow width90']/div/span")));
for (int j = 0; j < Dept.size(); j++)
{
System.out.println(Dept.get(j).getText());
if (Dept.get(j).getText().equals("Mumbai"))
{
Dept.get(j).click();
break;
}
}
Thread.sleep(3000);
driver.switchTo().alert().dismiss();
}
}
no such alert
答案 0 :(得分:2)
首先不是弹出窗口,而是iframe。
您可以从此链接获取更多信息,了解如何处理硒中的iframe
首先,您需要切换到iframe。
为此,在Thread.sleep(3000);
从html源中找到iframe名称后,您需要编写以下代码。
driver.switchTo().frame("notification-frame-~2514428c7");
driver.findElement(By.xpath("//i[@class='wewidgeticon we_close']")).click();
使用此功能,您可以关闭html弹出窗口。
答案 1 :(得分:0)
正如我所看到的,这是您正确的警报
因此您可以做一件事情,可以为警报编写代码,如果可见警报,则按由try catch包围的关闭按钮,以便在警报即将关闭时可以轻松摆脱警报。尽快,您的执行将会受到干扰,但是您需要使用诸如for from和to文本字段之类的主要元素,例如,如果给它们更少的等待时间,并且如果弹出窗口花费大量时间关闭,那么测试用例将失败,并且还有其他事情当我们将源传递给值时,弹出窗口只会在一个会话中出现一次
让我们知道您是否需要更多帮助
答案 2 :(得分:0)
这是<div class="contact-form">
<form id="contact-form" method="post" action="contact-form-handler.php">
<input name="name" type="text" class="form-control" placeholder="Your Name" required>
<br>
<input name="email" type="email" class="form-control" placeholder="Your Email">
<br>
<textarea name="message" class="form-control" placeholder="Message" rows="30" required></textarea><br>
<input type="submit" class="form-control" value="SEND MESSAGE">
</form>
</div>
,阻止您访问该元素。首先使用iframe
和webdriverwait
到switch
,然后访问该元素。尝试以下代码。
iframe