51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 6448|回复: 9
打印 上一主题 下一主题

谁给写个webdriver 登录百度例子啊?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-11-3 14:24:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这里涉及到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()
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2012-11-3 14:30:13 | 只看该作者
没人来看一下么
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2012-11-3 23:53:00 | 只看该作者
你不说一下错误提示吗?是找不到元素还是什么其他情况……
百度登录貌似很简单啊,不就是用javascript做了一个iframe吗。我用webdriver试了一下,一点问题没有啊。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2012-11-5 09:56:08 | 只看该作者
咦,我的回帖咋还没上去?审核没过?
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2012-11-5 10:02:52 | 只看该作者
你最好把你运行后的结果完整说一下,我试了一下百度的登录,用webdriver一点问题没有。从你的代码来看,貌似没有点击登录那个链接吧,只是做了一下查找,driver.find_element_by_link_text("登录")后面需要加个click方法吧。
还有,点击之后直接跳iframe可能会有问题,我的习惯是,只要有异步的内容出现,我肯定要做一下等待,否则很可能出现找不到元素的错误出现。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2012-11-5 11:01:06 | 只看该作者
回复 5# 六月天


    谢谢!上面是没有加click().可能这个是调试的代码。我今天在家里电脑试下可以,不知道在公司为什么不行我回去在查查。
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2012-11-5 11:01:59 | 只看该作者
谢谢六月天,问题解决代码如下:
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()
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2012-12-28 16:04:44 | 只看该作者
亲 没遇到百度登陆需要填写验证码的情况吗?
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2013-7-5 23:22:25 | 只看该作者
现在百度的登录是要验证码的,自动化估计做不了
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2013-8-29 16:13:18 | 只看该作者
我用IDE录制登陆脚本没有问题啊   我的问题是脚本回放退出操作时会报错,因为找不到鼠标悬停弹出菜单上的菜单项,这个问题怎么解决呢?
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-24 10:15 , Processed in 0.073217 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表