51Testing软件测试论坛

标题: 用python获取126邮箱输入框 [打印本页]

作者: lovewang0306    时间: 2016-6-28 11:33
标题: 用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
可以换其他方式定位,比如用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
掉渣饼 发表于 2016-6-28 13:19
可以换其他方式定位,比如用driver.find_element_by_name("name属性的值")或者driver.find_element_by_class ...

好用,你真是太厉害了,我看论坛里好多问题都是你解决的
作者: lovewang0306    时间: 2016-6-28 15:08
掉渣饼 发表于 2016-6-28 13:19
可以换其他方式定位,比如用driver.find_element_by_name("name属性的值")或者driver.find_element_by_class ...

好用,你真是太厉害了,我看论坛里好多问题都是你解决的,非常感谢!!
作者: lovewang0306    时间: 2016-6-28 15:10
总结一下,重点是‘driver.switch_to_frame("x-URS-iframe")’定位到子页面,我之前用name和class都失败的原因就是没有定位到iframe,其他元素标识不唯一,导致定位不了,然后不能用id查找,因为id是插件自动生成的,每次进去都不一样。
作者: 胖妞芝麻    时间: 2016-7-11 21:53
捣鼓好半天,终于在这里找到答案




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