Python selenium - 找不到元素

Python selenium - cant find element

我对 selenium 不是很陌生,但我无法解决这个问题。我应该做一个篮子自动化,但我在第一页遇到了麻烦。

我应该首先填写三个输入框才能继续实际订单,但我在第一个输入框时失败了。我们几乎每个输入都有唯一的 ID,所以应该不难找到它,但不知何故。

<input class="form-input--text" data-validitytext-empty="Položka je povinná.<br>Prosíme, vyplňte ji." data-validitytext-invalid="Položka má špatný formát.<br>Prosíme, opravte ji." data-label-selector="closest(.form-item--required)->find(label.form-label)" id="surname003" name="Prijmeni" type="text" value="" data-form-required="true" xpath="1">

这是第一个输入的描述方式,id 为“surname003”,所以我的第一个尝试就是这样做

driver.find_element_by_xpath("//*[@id='surname003']").send_keys("text")

然后我尝试用id访问它

driver.find_element_by_id("surname003").send_keys("text")

这一切都不起作用,所以我试图获取它的完整 xpath,但那没有用。

这是整个代码的样子

driver = webdriver.Chrome(executable_path=r"C:\Users\KDK\Desktop\Selenium setup\chromedriver.exe")
driver.get(URL2)
driver.maximize_window()
driver.implicitly_wait(10) 
driver.find_element_by_xpath("//*[@id='surname003']").send_keys("test")
driver.find_element_by_xpath("//*[@id='phone03']").send_keys(telefon)
driver.find_element_by_xpath("//*[@id='email03']").send_keys(email)

这是我得到的错误

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element:

这是我正在使用的页面:

https://www.nev-dama.cz/zima/rakousko/lungau/residence-carpe-solem-mariapfarr/rezervaceNova?termin=2021-01-10&typologie=[26225]&delka=3

我在想定位元素的问题是否与您可以在预订页面中的两个“windows”之间切换这一事实有某种联系。您可以在“不绑定预订”和“在线购买”之间切换,我不知道这是否会使获取元素变得更加困难。

我希望有人能帮我解决这个问题。如果有什么不清楚的地方,请问我,感谢阅读,并提前感谢您的回答! :)

他们很少有相同 ID 的输入,第一个来自另一个。但它不能提高 NoSuchElementException。 像那样尝试 XPATH //div[@id="koupit-online"]//*[@id='surname003']。 您需要将此部分 //div[@id="koupit-online"] 添加到所有 xpath 或用作上下文

form = driver.find_element_by_xpath("//div[@id='koupit-online']")
form.find_element_by_xpath(".//input[@id='surname003']").send_keys("test")
form.find_element_by_xpath(".//input[@id='phone03']").send_keys(telefon)
form.find_element_by_xpath(".//input[@id='email03']").send_keys(email)

第二个问题可以是chrome驱动。当我将 chrome 与 selenium 一起使用时,我无缘无故地得到了这个异常。我将浏览器更改为 firefox 和 geckodriver,这再也没有发生过