【发布时间】:2020-12-17 17:28:13
【问题描述】:
我编写了一个代码来自动化运动鞋抽奖的铭文,但我遇到的主要问题是 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。
感谢您的帮助!
【问题讨论】:
-
似乎与以下问题相同:stackoverflow.com/questions/24369249/…
-
也许
time.sleep不足以让元素出现。或者该元素可能在iframe内。另外,我建议使用显式等待,而不是time.sleep。 selenium.dev/documentation/en/webdriver/waits/#explicit-wait
标签: python selenium selenium-webdriver xpath