51Testing软件测试论坛

标题: 谁给写个webdriver 登录百度例子啊? [打印本页]

作者: dj7491916    时间: 2012-11-3 14:24
标题: 谁给写个webdriver 登录百度例子啊?
这里涉及到frame切换!网上的教程的例子都是一样的不生动。
我刚试了一下不知道为什么不行。
from selenium import webdriver
import unittest
class login(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Firefox()
        self.driver.implicitly_wait(30)
        self.base_url = "http://www.baidu.com"
        self.verificationErrors = []
   
    def test_loginpass(self):
        driver = self.driver
        driver.get(self.base_url)
        driver.find_element_by_link_text("登录")
        driver.switchTo().frame("login_iframe");
        driver.find_element_by_id("pass_login_username_0").send_keys("user")
        driver.find_element_by_id("pass_login_password_0").send_keys("pwd")
        driver.find_element_by_id("pass_login_input_submit_0").click()
    def tearDown(self):
        #self.driver.quit()
        self.assertEqual([], self.verificationErrors)

if __name__ == "__main__":
    unittest.main()
作者: dj7491916    时间: 2012-11-3 14:30
没人来看一下么
作者: 六月天    时间: 2012-11-3 23:53
你不说一下错误提示吗?是找不到元素还是什么其他情况……
百度登录貌似很简单啊,不就是用javascript做了一个iframe吗。我用webdriver试了一下,一点问题没有啊。
作者: 六月天    时间: 2012-11-5 09:56
咦,我的回帖咋还没上去?审核没过?
作者: 六月天    时间: 2012-11-5 10:02
你最好把你运行后的结果完整说一下,我试了一下百度的登录,用webdriver一点问题没有。从你的代码来看,貌似没有点击登录那个链接吧,只是做了一下查找,driver.find_element_by_link_text("登录")后面需要加个click方法吧。
还有,点击之后直接跳iframe可能会有问题,我的习惯是,只要有异步的内容出现,我肯定要做一下等待,否则很可能出现找不到元素的错误出现。
作者: dj7491916    时间: 2012-11-5 11:01
回复 5# 六月天


    谢谢!上面是没有加click().可能这个是调试的代码。我今天在家里电脑试下可以,不知道在公司为什么不行我回去在查查。
作者: dj7491916    时间: 2012-11-5 11:01
谢谢六月天,问题解决代码如下:
from selenium import webdriver
import unittest
class login(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Firefox()
        self.driver.implicitly_wait(30)
        self.base_url = "http://www.baidu.com"
        self.verificationErrors = []
   
    def test_loginpass(self):
        driver = self.driver
        driver.get(self.base_url)
        driver.find_element_by_link_text("登录").click()
        driver.implicitly_wait(30)
        driver.switch_to_frame("login_iframe")
        driver.find_element_by_id("pass_login_username_0").send_keys("name")
        driver.find_element_by_id("pass_login_password_0").send_keys("pwd")
        driver.find_element_by_id("pass_login_input_submit_0").click()
    def tearDown(self):
        #self.driver.quit()
        self.assertEqual([], self.verificationErrors)

if __name__ == "__main__":
    unittest.main()
作者: bob123654    时间: 2012-12-28 16:04
亲 没遇到百度登陆需要填写验证码的情况吗?
作者: Test_s    时间: 2013-7-5 23:22
现在百度的登录是要验证码的,自动化估计做不了
作者: yttself    时间: 2013-8-29 16:13
我用IDE录制登陆脚本没有问题啊   我的问题是脚本回放退出操作时会报错,因为找不到鼠标悬停弹出菜单上的菜单项,这个问题怎么解决呢?




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2