如何使用python处理selenium webdriver中基于web的弹出窗口

时间:2015-07-16 09:09:36

标签: javascript python selenium xpath selenium-webdriver

我是学习硒的新手。我只是尝试将网站自动化作为一种​​做法。我正在尝试www.quikr.com。在网页加载后,它会提供基于网络的弹出窗口,我想在弹出窗口中选择一个城市。我无法选择按文字,ID,xpath搜索。

<a class="cs" index="Ahmedabad" href="javascript:void(0);" onclick="clickcity(this,'bigmodal','ipcity','2','22');">Ahmedabad</a>

点击功能由这个javascript函数处理。

我想要实现的是如何使用webdriver在python中单击其中一个链接。

2 个答案:

答案 0 :(得分:0)

此示例选择'Ahmedab​​ad'

from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.quikr.com")
driver.find_element_by_xpath("//*[@id='ctystlist']/div[1]/div[2]/ul[1]/li[1]/a")
driver.close()

快乐测试!

答案 1 :(得分:0)

使用下面的代码选择chennai选项,

FirefoxDriver driver = new FirefoxDriver();

    driver.get("http://www.quikr.com/");

    Wait<WebDriver> wait = new WebDriverWait(driver, 180);
    try {
        wait.until(new ExpectedCondition<WebElement>() {
            public WebElement apply(WebDriver driver) {
                // driver.switchTo().defaultContent();
                WebElement element = driver.findElement(By.xpath("//a[contains(text(),'Chennai')]"));
                if (element.isDisplayed()) {
                    return element;
                }
                return null;
            }
        });
    } catch (Exception e) {
        throw new RuntimeException("Exception while waiting for " + By.xpath("//a[contains(text(),'Chennai')]")
                + ". Exception:" + e + " on " + driver.getCurrentUrl());
    }


    driver.findElement(By.xpath("//a[contains(text(),'Chennai')]")).click();

    driver.close();