3

我正在尝试自动化网页“ http://www.quikr.com ”,当我打开它时,您会首先弹出一个窗口,说“请选择您的位置”,然后在关闭它后,我可以看到主页古怪的。

我尝试通过自动化关闭该弹出页面,但无法做到

尝试使用 xpath

 driver.findElement(By.xpath("//*[@id='csclose']/strong")).click();

尝试使用类名

 driver.findElement(By.className("cs-close cs-close-v2")).click();

尝试使用 id

  driver.findElement(By.id("csclose")).click();

请在这件事上给予我帮助

4

7 回答 7

2

以下代码适用于我处理 Selenium Webdriver 中的弹出/警报只需在触发弹出/警报的事件之后复制粘贴此代码,即单击保存后。

if(driver.switchTo().alert() != null)
{
    Alert alert = driver.switchTo().alert();
    String alertText = alert.getText();
    alert.dismiss(); // alert.accept();

}

在您的情况下,您尝试在代码 bcz 的开头运行此代码,它将直接关闭弹出窗口

于 2013-11-28T07:50:31.683 回答
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();
于 2013-07-15T05:49:47.513 回答
1

由于这是一个 JavaScript 模式,当页面完成加载时,JavaScript 代码仍然可以运行。解决方案是等到显示关闭模式的按钮,关闭它,然后进行测试。像这样:

        WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
        wait.Until(ExpectedConditions.ElementIsVisible(By.Id("csclose")));

        driver.FindElement(By.Id("csclose")).Click();

测试了自己并且工作正常。

希望能帮助到你。

于 2013-07-04T11:59:32.620 回答
1

我已经在 ruby​​ 中试过了,这个可以用,看看这是否能以任何方式帮助你:)

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
于 2013-07-15T09:01:27.510 回答
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");
    }
于 2013-07-04T18:21:34.887 回答
0

试试driver.findElement(By.Id("csclose")).click();我希望这会有所帮助

于 2013-07-05T13:23:19.030 回答
0

简单地按 Alt + F4 按钮对我有用,例如:

        driver.findElement(By.cssSelector("html body div div img")).sendKeys(Keys.chord(Keys.ALT, Keys.F4));
于 2015-06-04T06:21:40.847 回答