![](/img/trans.png)
[英]Python / Selenium - Can't submit the keys in Instagram search input
[英]Can't get instagram search box using selenium and python
我一直在使用 python 和 selenium 構建一個 instagram 機器人。 我正在嘗試獲取搜索框元素並運行搜索。 然而,硒似乎無法檢測到該元素。 我已經嘗試通過每種可用的方法(Xpath、css 選擇器等)來獲取它。
這是我嘗試搜索它的方法之一(請注意,我還實現了 time.sleep 以提供頁面加載時間)。
def search():
DRIVER_PATH = '/Users/kiluas/selenium/driver/chromedriver'
webd = webdriver.Chrome(executable_path = DRIVER_PATH)
webd.find_element_by_css_selector('#react-root > section > nav > div._8MQSO.Cx7Bp > div > div > div.LWmhU._0aCwM > input')
這是它吐出的錯誤日志:
Traceback (most recent call last):
File "autologinIg.py", line 80, in <module>
loginInstagram('username', 'password', 3)
File "autologinIg.py", line 45, in loginInstagram
search()
File "autologinIg.py", line 78, in search
webd.find_element_by_css_selector('#react-root > section > nav > div._8MQSO.Cx7Bp > div > div > div.LWmhU._0aCwM > input')
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 598, in find_element_by_css_selector
return self.find_element(by=By.CSS_SELECTOR, value=css_selector)
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 976, in find_element
return self.execute(Command.FIND_ELEMENT, {
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python3.8/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":"css selector","selector":"#react-root > section > nav > div._8MQSO.Cx7Bp > div > div > div.LWmhU._0aCwM > input"}
(Session info: chrome=85.0.4183.121)
知道是什么導致了這種行為?
有時它們在每次運行中的類名都不同,因此我們無法自動化您的選擇器是:#react-root > section > nav > div._8MQSO.Cx7Bp > div > div > div.LWmhU._0aCwM > input'
div._8MQSO.Cx7Bp - 這在你的 css 選擇器中是否保持不變?
我可以在searchbox
插入值。
誘導WebDriverWait
() 並等待element_to_be_clickable
() 和跟隨xpath
WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH,"//input[@placeholder='Search']"))).send_keys("text to be search")
您需要導入以下庫。
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
請注意,如果您收到任何彈出通知,您需要在搜索前使用以下代碼。
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//button[text()='Not Now']"))).click()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.