我正在尝试自动化网页“http://www.quikr.com”,当我打开此页面时,您将首先看到一个弹出窗口,上面写着“请选择您的位置”,然后关闭它后,我可以看到主页quikr。
我尝试通过自动关闭该弹出页面,但无法执行
尝试使用xpath
driver.findElement(By.xpath("//*[@id='csclose']/strong")).click();
尝试使用className
driver.findElement(By.className("cs-close cs-close-v2")).click();
尝试使用id
driver.findElement(By.id("csclose")).click();
请帮我解决这个问题
答案 0 :(得分:2)
关闭webdriver中的多个弹出窗口并切换到父窗口
String parent = driver.getWindowHandle();
Set<String> pops=driver.getWindowHandles();
{
Iterator<String> it =pops.iterator();
while (it.hasNext()) {
String popupHandle=it.next().toString();
if(!popupHandle.contains(parent))
{
driver.switchTo().window(popupHandle);
System.out.println("Popu Up Title: "+ driver.switchTo().window(popupHandle).getTitle());
driver.close();
答案 1 :(得分:2)
以下代码适用于我处理Selenium Webdriver中的弹出/警报 只需复制粘贴此代码在触发弹出/警报的事件之后,即在单击保存之后。
if(driver.switchTo().alert() != null)
{
Alert alert = driver.switchTo().alert();
String alertText = alert.getText();
alert.dismiss(); // alert.accept();
}
在您的情况下,您尝试在代码bcz的启动时运行此代码,它将直接关闭弹出窗口
答案 2 :(得分:1)
由于这是一个JavaScript模式,当页面完成加载时,JavaScript代码仍然可以运行。解决方案是等待关闭模式的按钮显示,关闭它然后按照测试。像这样:
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
wait.Until(ExpectedConditions.ElementIsVisible(By.Id("csclose")));
driver.FindElement(By.Id("csclose")).Click();
自己测试并且工作正常。
希望它有所帮助。
答案 3 :(得分:1)
我在红宝石中尝试过,这个有效 看看这是否可以以任何方式帮助你:)
require 'selenium-webdriver'
require 'test/unit'
require 'rubygems'
class Tclogin < Test::Unit::TestCase #------------ define a class----------------
def setup
@@driver = Selenium::WebDriver.for :firefox
@@driver.navigate.to "http://www.quikr.com" #---- call url----
@@wait = Selenium::WebDriver::Wait.new(:timeout => 60) # seconds #----define wait------
end
def test_login
@@driver.find_element(:css, "strong").click
end
end
您也可以使用以下xpath
@@driver.find_element(:xpath, "//a[@id='csclose']/strong").click
答案 4 :(得分:0)
public void closePopup() throws Exception {
WebDriver driver = new InternetExplorerDriver();
driver.get("http://www.quikr.com/");
WebDriverWait wait = new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("csclose"))).click();
System.out.println("Successfully closed the start Popup");
}
答案 5 :(得分:0)
尝试driver.findElement(By.Id("csclose")).click();
我希望这会有所帮助
答案 6 :(得分:0)
简单按下Alt + F4按钮对我有用,例如:
driver.findElement(By.cssSelector("html body div div img")).sendKeys(Keys.chord(Keys.ALT, Keys.F4));