首页 > 解决方案 > Webdriver 无法通过 xpath 或 ID 找到元素

问题描述

我编写了一个代码来自动化运动鞋抽奖的铭文,但我遇到的主要问题是 webdriver 无法找到元素,我觉得这很奇怪。我会把网站链接和我的相关代码示例放在一起。也许这是由于反机器人,但这似乎不太可能,因为该网站似乎缺乏安全性。这是网站:

https://r1.dotmailer-surveys.com/2a5ece38e398a86d1d2ieba093b44fa8fd3a-610c7264a82913e254v5f2457bdb04a5a308

我在这里尝试通过短 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。

谢谢你的帮助!

标签: pythonseleniumselenium-webdriverxpath

解决方案


是的,它在 iFrame 中。您需要将焦点切换到 iFrame 以查找文本元素并与它们进行交互。


推荐阅读