我想用“名字”填充输入
driver.get("https://www.supremenewyork.com/checkout")
driver.find_element_by_id("order_billing_name").send_keys("Name")
出现此错误:
Message: unknown error: Failed to execute 'contains' on 'Node': parameter 1 is not of type 'Node'.
这是元素<input first_and_last="true" placeholder="full name" class="string required" type="text" name="order[billing_name]" id="order_billing_name">
这是错误:
Traceback (most recent call last):
File "C:/Users/PC/Desktop/Bot supreme/test.py", line 19, in <module>
driver.find_element_by_id("order_billing_name").send_keys("xdd")
File "C:\Users\PC\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 351, in find_element_by_id
return self.find_element(by=By.ID, value=id_)
File "C:\Users\PC\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 955, in find_element
'value': value})['value']
File "C:\Users\PC\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 312, in execute
self.error_handler.check_response(response)
File "C:\Users\PC\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Failed to execute 'contains' on 'Node': parameter 1 is not of type 'Node'.
(Session info: chrome=65.0.3325.181)
(Driver info: chromedriver=2.37.544315 (730aa6a5fdba159ac9f4c1e8cbc59bf1b5ce12b7),platform=Windows NT 10.0.16299 x86_64)
答案 0 :(得分:0)
我刚刚注意到,当我打开您提供的网址时,该网站会自动重定向到其他网页。 (可能是因为您没有登录或购物车中没有商品。)
如果是这种情况,那么您要查找的元素不在新页面中。
答案 1 :(得分:0)
我记得在Selenium的较旧版本中发生此错误。
请运行此更新您的Selenium并尝试再次运行测试:
pip install -U selenium
如果您需要更多帮助来更新 Selenium ,请使用This了解有关如何安装软件包的详情。
<强>更新强>
以下是使用 WebDriverWait 的一个有用的例子:
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
driver.get("https://www.supremenewyork.com/checkout")
WebDriverWait(driver, 15).until(EC.visibility_of_element_located((By.XPATH, "//*[@id='order_billing_name']")))
nameField = driver.find_element_by_xpath("//*[@id='order_billing_name']")
nameField.send_keys("Name")
有关WebDriverWait
如何运作的详细信息,请使用: