首页 新闻 会员 周边 捐助

selenium如何实现登录百度

0
[已解决问题] 解决于 2018-07-28 20:07

python和selenium在尝试百度首页登录时发现,点击登录后会弹出登录小窗口,小窗口默认是二维码登录。然后按理说应该选择左下角的用户名登录,可是无论我怎么定位,程序始终报错。网上我搜索的方案也都不行。我也没有发现其他frame可以切入。

从MH到其他的主页 从MH到其他 | 初学一级 | 园豆:140
提问于:2018-07-27 14:34
< >
分享
最佳答案
0
import time
from selenium import webdriver

driver = webdriver.Chrome()
driver.maximize_window()
driver.get('http://www.baidu.com/')
time.sleep(1)
#进入登录页面
driver.find_element_by_link_text('登录').click()
#选择用户名登录方式
driver.find_element_by_xpath('//*[@class="tang-pass-footerBar"]/p[text()="用户名登录"]').click()
#直接点击登录
driver.find_element_by_class_name("pass-form-item-submit").click()
err_str = driver.find_element_by_xpath('//*[@id="TANGRAM__PSP_3__error"]').text
try:
    assert err_str == '请您输入手机/邮箱/用户名'
    print('Test Pass')
except:
    print('Test Fail')

今天解决了,应该是选择class的时候不要前面相同的部分(pass-form-item pass-form-item-submit只选择pass-form-item-submit部分),另外不要选择类似‘TANGRAM__PSP_3__submitWrapper’的来定位,感觉PSP_3这个会不停的变。

从MH到其他 | 初学一级 |园豆:140 | 2018-07-28 20:06

不是这个ID会变,可能是因为点击“登录”后,页面没有完全加载,需要进入登录页面后再加上一个等待时间,这样就可以了

SplitKid | 园豆:200 (初学一级) | 2019-04-26 00:22
其他回答(1)
0

左下角 用户名登录 

ycyzharry | 园豆:25683 (高人七级) | 2018-07-27 15:02
import time
from selenium import webdriver

driver = webdriver.Chrome()
driver.maximize_window()
driver.get('http://www.baidu.com/')
time.sleep(1)
#进入登录页面
driver.find_element_by_link_text('登录').click()
#选择用户名登录方式
driver.find_element_by_xpath('//*[@class="tang-pass-footerBar"]/p[text()="用户名登录"]').click()
#直接点击登录
driver.find_element_by_class_name("pass-form-item-submit").click()
err_str = driver.find_element_by_xpath('//*[@id="TANGRAM__PSP_3__error"]').text
try:
    assert err_str == '请您输入手机/邮箱/用户名'
    print('Test Pass')
except:
    print('Test Fail')

今天解决了,应该是选择class的时候不要前面相同的部分(pass-form-item pass-form-item-submit只选择pass-form-item-submit部分),另外不要选择类似‘TANGRAM__PSP_3__submitWrapper’的来定位,感觉PSP_3这个会不停的变。

支持(0) 反对(0) 从MH到其他 | 园豆:140 (初学一级) | 2018-07-28 20:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册