[Python] 模拟登陆功能中ID的获取问题
想为某网页写一个实现模拟登陆功能的小程序,但是卡在这一步,显示一直找不到id,请大佬帮忙看下,这账号框和密码框应用什么方式获取,谢谢!Pycharm报错如下:
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"selector":"signInName"}
from selenium import webdriver
import time
login_page = 'https://upsb2c.b2clogin.com/upsb2c.onmicrosoft.com/oauth2/v2.0/authorize?p=b2c_1a_forcepasswordreset_signup_signin&client_id=f15fa43e-2af5-4a3e-b6a2-dcdd1e9bf8a7&response_mode=form_post&response_type=id_token&scope=openid&redirect_uri=https://fgv.ups-scs.com/loginservicesfgv/msaadLogOn.nfdo'
broswer = webdriver.Chrome()
broswer.get(login_page)
print(broswer.page_source)
broswer.find_element_by_id('signInName').send_keys('abc@163.com')
broswer.find_element_by_id('password').send_keys('123456')
submit.click()
cookies = webdriver.get_cookies()
time.sleep(3)
broswer.close()
寻找元素前sleep一下,或者使用slenium的显示等待,另楼主的点击按钮没有获取 WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "signInName")))
这个页面是两个html合成的,get后显示等待一下就好了 这个页面html的id可能是通过js生成的,所以你需要执行js文件,如果你通过请求的网页中有这个数据的话可以通过正则分离出来。 1170 发表于 2020-3-22 23:35
寻找元素前sleep一下,或者使用slenium的显示等待,另楼主的点击按钮没有获取
还真是这个问题,sleep了40秒才成功:curse: Javajsc 发表于 2020-3-23 00:01
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "sig ...
可以了,谢谢老哥~
另外问下,如果仅仅用requests模拟登陆,只能用sleep等待吗? 倾情 发表于 2020-3-23 08:26
这个页面html的id可能是通过js生成的,所以你需要执行js文件,如果你通过请求的网页中有这个数据的话可以通 ...
谢谢回复,用楼上等待的方法解决了~
页:
[1]