簡體   English   中英

Python / Selenium-無法在Instagram搜索輸入中提交密鑰

[英]Python / Selenium - Can't submit the keys in Instagram search input

因此,我有一個進入Instagram.com的python文件,放入了帳戶憑據,並在登錄后最終將密鑰輸入了搜索框。將密鑰放入搜索框后,我看不到提交密鑰,因此Instagram可以將我帶到帳戶頁面(例如:我在instagram搜索欄中輸入了@streetgoodies,單擊Enter,然后將我帶到www.instagram.com/streetgoodies/)

有什么方法可以將關鍵字提交到搜索中,以便可以將我重定向到我所請求的搜索查詢?

from time import sleep
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# start a new browser session 
browser = webdriver.Chrome('PATH/TO/DRIVER')

# navigate to a webpage
browser.get('https://www.instagram.com')

# find login link 
login_elem = browser.find_element_by_xpath(
    '//*[@id="react-root"]/section/main/article/div[2]/div[2]/p/a')

# click login in button
login_elem.click()

# send login info credentials to correct input boxes
browser.find_element_by_xpath("//input[@name='username']").send_keys('USERNAME')
browser.find_element_by_xpath("//input[@name='password']").send_keys('PASSWORD')

# click final login button
browser.find_element_by_xpath("//button[contains(.,'Log in')]").click()

# find hidden search bar
searchbox = WebDriverWait(browser, 10).until(
    EC.visibility_of_element_located(
        (By.XPATH, "//input[@placeholder='Search']")
    )
)

# send search into input

searchbox.send_keys('streetgoodies')
searchbox.submit()

searchbox.submit()引起了問題(我相信),謝謝!

我為你寫下了一個腳本。 首先讓我解釋一下:

  1. 我有直接登錄頁面。 因此,您無需搜索登錄名。
  2. 應該有WebDriverWait函數,因為登錄頁面不會很快出現。
  3. 您的代碼和instagram的主要問題是沒有任何提交按鈕。 因此應該有send_keys(Keys.ENTER)
  4. 一個Keys.ENTER選擇第一項:),所以我添加了另一個Keys.Enter

此代碼有效:

import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# start a new browser session 
browser = webdriver.Chrome('/pathtochromedriver')

# navigate to a webpage
browser.get('https://www.instagram.com/accounts/login/')
login_wait = WebDriverWait(browser, 10)

# click login in button
elem = login_wait.until(EC.visibility_of_element_located((By.XPATH, ".//input[@name='username']")))
elem.send_keys("usrname")
elem = login_wait.until(EC.visibility_of_element_located((By.XPATH, ".//input[@name='password']")))
elem.send_keys("passwd")

# click final login button
browser.find_element_by_xpath("//button[contains(.,'Log in')]").click()

# find hidden search bar
searchbox = WebDriverWait(browser, 10).until(
    EC.visibility_of_element_located(
        (By.XPATH, "//input[@placeholder='Search']")
    )
)

# send search into input

searchbox.send_keys('streetgoodies')
time.sleep(2)
# searchbox.submit()

searchbox.send_keys(Keys.ENTER)
time.sleep(1)
searchbox.send_keys(Keys.ENTER)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM