TA的每日心情 | 奋斗 2016-12-12 22:10 |
---|
签到天数: 12 天 连续签到: 1 天 [LV.3]测试连长
|
本帖最后由 leisijun 于 2016-11-28 15:00 编辑
各位大神,向大家请教个问题。
用python的selenium写一个百度账号登陆的脚本
脚本:
from selenium import webdriver
import time as t
browser = webdriver.Chrome()
browser.get('http://www.baidu.com')
t.sleep(3)
#定位百度首页的登陆按钮
load_css = 'html body div#wrapper div#head div.head_wrapper div#u1 a.lb'
load_id = 'tj_login' #为什么这里用name找不到元素
load_xpath = 'ml/body/div[4]/div[1]/div/div[3]/a[7]'
browser.find_element_by_css_selector(load_css).click()
#等位百度首页登陆账号和密码对话框的输入按钮
name_css = 'html body div#passport-login-pop.tang-pass-pop-login-noimg.tang-pass-pop-login-merge.tang-pass-pop-login-tpl-mn.tang-pass-pop-login-color-blue.tang-pass-pop-login div#TANGRAM__PSP_2__foreground.tang-foreground div#TANGRAM__PSP_2__body.tang-body div#TANGRAM__PSP_2__content.tang-content div#passport-login-pop-dialog div.clearfix div.pass-login-pop-content div.pass-login-pop-form div#passport-login-pop-api.tang-pass-login form#TANGRAM__PSP_8__form.pass-form.pass-form-normal p#TANGRAM__PSP_8__userNameWrapper.pass-form-item.pass-form-item-userName input#TANGRAM__PSP_8__userName.pass-text-input.pass-text-input-userName'
name_id = 'TANGRAM__PSP_8__userName'
name_xpath = '//*[@id="TANGRAM__PSP_8__userName"]'
#这里用三种方式都找不到用户名输入框的元素?
browser.find_element_by_css_selector(css).click()
browser.find_element_by_css_selector(css).clear()
对象1.
百度首页右上角的登陆按键
使用css定位可行,使用name与xpath定位失败,代码见上
使用firebug审查元素结果为:
<a href="https://passport.baidu.com/v2/?login&tpl=mn&u=http%3A%2F%2Fwww.baidu.com%2F" name="tj_login" class="lb">登录</a>
错误的结果:
xpath的结果:
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: /html/body/div[4]/div[1]/div/div[3]/a[7]
对象2.
click百度右上角的登陆按键后出现的对话框
使用id,name,xpath,css定位全部失败。
使用firebug审查元素结果为:
<input id="TANGRAM__PSP_8__userName" name="userName" class="pass-text-input pass-text-input-userName open" autocomplete="off" placeholder="手机/邮箱/用户名" type="text">
失败报错:
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: html body div#passport-login-pop.tang-pass-pop-login-noimg.tang-pass-pop-login-merge.tang-pass-pop-login-tpl-mn.tang-pass-pop-login-color-blue.tang-pass-pop-login div#TANGRAM__PSP_2__foreground.tang-foreground div#TANGRAM__PSP_2__body.tang-body div#TANGRAM__PSP_2__content.tang-content div#passport-login-pop-dialog div.clearfix div.pass-login-pop-content div.pass-login-pop-form div#passport-login-pop-api.tang-pass-login form#TANGRAM__PSP_8__form.pass-form.pass-form-normal p#TANGRAM__PSP_8__userNameWrapper.pass-form-item.pass-form-item-userName input#TANGRAM__PSP_8__userName.pass-text-input.pass-text-input-userName
|
|