繁体   English   中英

无法使用 selenium 找到元素和输入值

[英]Unable to find element and input value using selenium

我的目标是使用 selenium 获取一个值(在我的例子中是货件跟踪编号)并将其输入到网站的跟踪字段中。我无法输入该值并收到以下错误消息:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

chromedriver = "/Users/GUVA/Downloads/chromedriver"
driver = webdriver.Chrome(chromedriver)
driver.get("https://www.17track.net/en")

#data = df.values[1] # grabbing one tracking number from an excel file

# click "agree" to close window
python_button = driver.find_elements_by_xpath('//*[@id="modal-gdpr"]/div/div/div[3]/button')[0]
python_button.click()

# enter tracking number into text box
que=driver.find_element_by_id('//input[@id="jsTrackBox"]')
que.send_keys("data")

Traceback (most recent call last):
File "/Users/GUVA/PycharmProjects/Shipment_Tracking/Track Shipment.py", line 26, in <module>
que=driver.find_element_by_id('//input[@id="jsTrackBox"]')
File "/Users/GUVA/PycharmProjects/Shipment_Tracking/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 360, in find_element_by_id
return self.find_element(by=By.ID, value=id_)
File "/Users/GUVA/PycharmProjects/Shipment_Tracking/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 976, in find_element
return self.execute(Command.FIND_ELEMENT, {
File "/Users/GUVA/PycharmProjects/Shipment_Tracking/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/Users/GUVA/PycharmProjects/Shipment_Tracking/venv/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.InvalidSelectorException: Message: invalid selector: An invalid or illegal selector was specified
(Session info: chrome=83.0.4103.61)

请问有什么建议吗?

//input[@id="jsTrackBox"]是一个 xpath。因此您需要使用find_element_by_xpath方法(您当前使用的是find_element_by_id方法)来获取元素。

你的代码应该是这样的:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

chromedriver = "/Users/GUVA/Downloads/chromedriver"
driver = webdriver.Chrome(chromedriver)
driver.get("https://www.17track.net/en")

#data = df.values[1] # grabbing one tracking number from an excel file

# click "agree" to close window
python_button = driver.find_elements_by_xpath('//*[@id="modal-gdpr"]/div/div/div[3]/button')[0]
python_button.click()

# enter tracking number into text box
que=driver.find_element_by_xpath("//div[@id='jsTrackBox']//div[@class='CodeMirror-scroll']")
que.click()
que.send_keys("data")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM