问题遇到的现象和发生背景
在尝试selenium 模拟登录qq空间时需要滑块验证,在find_element中使用XPATH获取标签时出现了错误
问题相关代码,请勿粘贴截图
from selenium import webdriver
import selenium
from selenium.webdriver.edge.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver import ActionChains
from time import sleep
#传入驱动
bro = webdriver.Edge(service=Service("./selenium浏览器驱动\EDGE\msedgedriver.exe"))
#发送请求
bro.get("https://qzone.qq.com/")
#第一次切换frame
bro.switch_to.frame("login_frame")
#进入账号密码登录页面
sleep(2)
a_btn=bro.find_element(By.ID,"switcher_plogin")
a_btn.click()
sleep(1)
#定位账号密码标签
user = bro.find_element(By.ID,"u")
psw = bro.find_element(By.ID,"p")
#输入账号密码
user.send_keys("19876543210")
psw.send_keys("123456789")
#点击登录
log_btn=bro.find_element(By.ID,"login_button")
sleep(1)
log_btn.click()
#第二次切换frame
bro.switch_to.frame("tcaptcha_iframe_dy")
#点击验证图片//*[@id="tcOperation"]/div[8]
sleep(5)
img_tset= bro.find_element(By.XPATH,'.//div[@id="tcOperation"]/div[8]')
action = ActionChains(bro)
for i in range (5):
action.click_and_hold(img_tset).perform()
action.move_by_offset(35.5,0).perform()
action.release()
bro.close()
运行结果及报错内容
我的解答思路和尝试过的方法
看来很多人的文章,如果要使用XPATH来获取标签,要么是目标标签在frame中,要么是XPATH写错了,要么是代码在执行时相关数据还没加载出来,但是上附代码中已经切换到最近的frame中,其中的XPATH是在浏览器开发者工具中直接复制的(应该不会出错),并且也加上了等待,还是无法链接目标标签
我想要达到的结果
能够正常获取标签