[英]Python with Selenium: Unable to find element to type in
我正在嘗試使用Selenium在網站上查找元素,但遇到了困難:
我正在查看的頁面: https : //corporate.axisbank.co.in/
所選元素的HTML如下所示:
<input name="FORM_CORPORATEID" type="text" onpaste="return false" ondrop="return false" ondrag="return false" oncopy="return false" oncut="return false" autocomplete="off" id="corporateId" class="cm-input-box has-gradient-border">
我曾嘗試使用Id,XPath等,但始終收到錯誤消息:
from selenium import webdriver
driver = webdriver.Chrome()
bankurl= "https://corporate.axisbank.co.in/"
driver.get(bankurl)
driver.find_element_by_name("FORM_CORPORATEID").send_keys("USERNAME")
我最終收到以下錯誤:
Traceback (most recent call last):
File "C:/Users/alwyn.kotze/PycharmProjects/AlwynAuto1/Automations/Axis1.py", line 8, in <module>
driver.find_element_by_name("FORM_CORPORATEID").send_keys("USERNAME")
File "C:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 489, in find_element_by_name
return self.find_element(by=By.NAME, value=name)
File "C:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 957, in find_element
'value': value})['value']
File "C:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 314, in execute
self.error_handler.check_response(response)
File "C:\Python\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"name","selector":"FORM_CORPORATEID"}
(Session info: chrome=66.0.3359.181)
(Driver info: chromedriver=2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb),platform=Windows NT 10.0.16299 x86_64)
是什么導致此錯誤?
from selenium import webdriver
import time
driver = webdriver.Chrome()
bankurl= "https://corporate.axisbank.co.in/"
driver.get(bankurl)
time.sleep(5)
driver.find_element_by_id('corporateId').send_keys("USERNAME")
根據您提供的用於查找元素並發送文本USERNAME的HTML,您需要誘導WebDriverWait才能使該元素可單擊 ,如下所示:
代碼塊:
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC driver = webdriver.Chrome() bankurl= "https://corporate.axisbank.co.in/" driver.get(bankurl) WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input#corporateId"))).send_keys("USERNAME")
瀏覽器快照:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.