伤山行 2022-07-05 15:43
浏览 19
已结题

selenium 模拟登录qq空间滑块验证时,在find_element中使用XPATH获取标签时出现了错误,如何解决?(语言-python)

问题遇到的现象和发生背景

在尝试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()
运行结果及报错内容

img

我的解答思路和尝试过的方法

看来很多人的文章,如果要使用XPATH来获取标签,要么是目标标签在frame中,要么是XPATH写错了,要么是代码在执行时相关数据还没加载出来,但是上附代码中已经切换到最近的frame中,其中的XPATH是在浏览器开发者工具中直接复制的(应该不会出错),并且也加上了等待,还是无法链接目标标签

img

我想要达到的结果

能够正常获取标签

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 7月13日
    • 创建了问题 7月5日

    悬赏问题

    • ¥20 ESP32使用MicroPyhon开发,怎么获取485温湿度的值,温湿度计使用的鞋子是Modbus RTU
    • ¥50 苹果MGIE项目部署缺少emb权重
    • ¥15 采用ansys进行机翼在特定路径下的打孔过程中的受力分析
    • ¥15 单片机adb主机连接手机,usb调试密钥无法保存
    • ¥15 已知X和Y有以下关系,求X和Y的关系式
    • ¥15 net core 同时编辑怎么防止数据多保存了
    • ¥15 matlab做ba模型让其在ba和er规则下生长
    • ¥15 请问Quartus的Verilog代码怎么写?
    • ¥100 Mac 版foxmail 收邮件问题
    • ¥15 QWebEngineView