dj7491916 发表于 2012-11-3 14:24:49

谁给写个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:13

没人来看一下么:shutup:

六月天 发表于 2012-11-3 23:53:00

你不说一下错误提示吗?是找不到元素还是什么其他情况……
百度登录貌似很简单啊,不就是用javascript做了一个iframe吗。我用webdriver试了一下,一点问题没有啊。

六月天 发表于 2012-11-5 09:56:08

咦,我的回帖咋还没上去?审核没过?

六月天 发表于 2012-11-5 10:02:52

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

dj7491916 发表于 2012-11-5 11:01:06

回复 5# 六月天


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

dj7491916 发表于 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()

bob123654 发表于 2012-12-28 16:04:44

亲 没遇到百度登陆需要填写验证码的情况吗?

Test_s 发表于 2013-7-5 23:22:25

现在百度的登录是要验证码的,自动化估计做不了

yttself 发表于 2013-8-29 16:13:18

我用IDE录制登陆脚本没有问题啊   我的问题是脚本回放退出操作时会报错,因为找不到鼠标悬停弹出菜单上的菜单项,这个问题怎么解决呢?
页: [1]
查看完整版本: 谁给写个webdriver 登录百度例子啊?