python - Webdriver 无法通过 xpath 或 ID 找到元素
问题描述
我编写了一个代码来自动化运动鞋抽奖的铭文,但我遇到的主要问题是 webdriver 无法找到元素,我觉得这很奇怪。我会把网站链接和我的相关代码示例放在一起。也许这是由于反机器人,但这似乎不太可能,因为该网站似乎缺乏安全性。这是网站:
我在这里尝试通过短 xpath、长 xpath 和 ID 查找元素,但它们都不起作用。
driver = webdriver.Chrome(executable_path='../drivers/chromedriver', chrome_options=options)
driver.get('https://r1.dotmailer-surveys.com/2a5ece38e398a86d1d2ieba093b44fa8fd3a-610c7264a82913e254v5f2457bdb04a5a308')
time.sleep(delay)
search = driver.find_element_by_id('textbox-3').send_keys(Prenom)
time.sleep(delay)
search = driver.find_element_by_xpath('//*[@id="textbox-4"]').send_keys(Nom)
time.sleep(delay)
search = driver.find_element_by_xpath('/html/body/form/div[2]/div/div/div/div[2]/div/div[1]/div/div[10]/input').send_keys(Mail)
time.sleep(delay)
即使我放了很大的延迟或 webdriverwait,它也总是返回一条错误消息。我非常困惑,如果有人可以帮助我,我将非常感激。这是我收到的错误消息:
selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法找到元素:{"method":"css selector","selector":"[id="textbox-3"]"}
如果您想验证这确实是好的 ID 和 Xpath,您可以查看该网站。
我真的不知道发生了什么。我不知道它是否相关,但我使用 python。
谢谢你的帮助!
解决方案
是的,它在 iFrame 中。您需要将焦点切换到 iFrame 以查找文本元素并与它们进行交互。
推荐阅读
- sql - SSMS 设计器问题 IIF SQL Server
- java - 在 Java 中覆盖泛型方法的正确方法
- java - 使用JUnit @ResourceLock 顺序执行一些测试类
- java - 无法通过 Java 从数据库中检索记录
- html - 延迟加载期间加载主体不包含父元素
- azure - 具有基于策略的站点到站点连接的同一网络上的 Azure 点到站点 VPN
- android - 列表视图下的按钮
- python - 如何在 Python 中验证 application/x-bzip2 类型的响应
- python - When to start the google cloud profiler in a Django project?
- sql - 选择函数索引或新列索引