lovewang0306 发表于 2016-6-28 11:33:47

用python获取126邮箱输入框

根据实例想试试python登录邮箱的功能,结果被126卡住了,参考文档的获取元素代码如下,运行之后系统报错,我用IDE定位了一下,发现126的输入框ID是自动变化的,截图已附上,使用firebug获取的话也是读到这个自动的ID,求教这种情况下应该怎么获取定位呢?
driver.find_element_by_id("pwdInput").clear()
driver.find_element_by_id("pwdInput").set_keys("ming0306")
driver.find_element_by_id("LoginBtn").click()


file:///C:\Users\yaowenyue\AppData\Roaming\Tencent\Users\1710320465\QQ\WinTemp\RichOle\M3N)_G65L`JQSR_()04WH98.png

掉渣饼 发表于 2016-6-28 13:19:00

可以换其他方式定位,比如用driver.find_element_by_name("name属性的值")或者driver.find_element_by_class_name("class属性的值")
你可以试试下面代码
#coding=utf-8
from selenium import webdriver
driver= webdriver.Firefox()
driver.maximize_window()
driver.get("http://mail.126.com/")
driver.implicitly_wait(30)
driver.switch_to_frame("x-URS-iframe")
driver.find_element_by_name("email").clear()
driver.find_element_by_name("email").send_keys("用户名")
driver.find_element_by_name("password").clear()
driver.find_element_by_name("password").send_keys("密码")
driver.find_element_by_id("dologin").click()

lovewang0306 发表于 2016-6-28 15:07:58

掉渣饼 发表于 2016-6-28 13:19
可以换其他方式定位,比如用driver.find_element_by_name("name属性的值")或者driver.find_element_by_class ...

好用,你真是太厉害了,我看论坛里好多问题都是你解决的:lol

lovewang0306 发表于 2016-6-28 15:08:09

掉渣饼 发表于 2016-6-28 13:19
可以换其他方式定位,比如用driver.find_element_by_name("name属性的值")或者driver.find_element_by_class ...

好用,你真是太厉害了,我看论坛里好多问题都是你解决的:lol,非常感谢!!

lovewang0306 发表于 2016-6-28 15:10:58

总结一下,重点是‘driver.switch_to_frame("x-URS-iframe")’定位到子页面,我之前用name和class都失败的原因就是没有定位到iframe,其他元素标识不唯一,导致定位不了,然后不能用id查找,因为id是插件自动生成的,每次进去都不一样。

胖妞芝麻 发表于 2016-7-11 21:53:16

:'(捣鼓好半天,终于在这里找到答案
页: [1]
查看完整版本: 用python获取126邮箱输入框