Twitter登录窗口弹出时Webdriver测试停止

时间:2012-10-16 19:01:36

标签: python webdriver selenium-webdriver

我正在尝试运行一个导航到网站的简单测试。尝试使用Twitter注册网站。出于某种原因,当我点击twitter按钮并且弹出登录窗口时,测试就会停止。在搜索谷歌,selenium用户组或stackoverflow时,我一直找不到任何东西(至少到现在为止)。我想知道是否有其他人遇到过类似的问题,或者我是否遗漏了一些非常简单的东西。提前致谢。代码如下:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
import unittest, time, re

class TwReg(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Firefox()
        self.driver.implicitly_wait(30)
        self.base_url = "sitename"
        self.verificationErrors = []

    def test_tw_reg(self):
        driver = self.driver
        driver.get(self.base_url + "/")
        driver.find_element_by_id("tw_one_click_btn").click()

    def is_element_present(self, how, what):
        try: self.driver.find_element(by=how, value=what)
        except NoSuchElementException, e: return False
        return True

    def tearDown(self):
        self.driver.quit()
        self.assertEqual([], self.verificationErrors)

if __name__ == "__main__":
    unittest.main()

确保我清楚地阐明正在发生的事情。上面的代码应该在弹出窗口中的twitter唱歌后退出,而不是在那时挂起。此代码由Selenium的IDE生成。再次感谢。

1 个答案:

答案 0 :(得分:1)

我根本不知道python,但看起来好像你的代码没有告诉webdriver切换到弹出窗口。在webdriver单击按钮后,它正在尝试在登录页面而不是弹出窗口中找到元素“what”。因为登录窗口不再具有焦点,所以它不会触发NoSuchElementException,而是超时。因此,您需要在代码中添加一行,以便在打开后切换到弹出窗口。