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

2024-05-28 23:39:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我的目标是获取一个值(在我的例子中是装运跟踪),并使用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)

有什么建议吗


Tags: pyidbydriverseleniumlineelementfind
1条回答
网友
1楼 · 发布于 2024-05-28 23:39:44

//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")

相关问题 更多 >

    热门问题