我嘗試使用以下代碼自動化站點 -
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from webdriver_manager.chrome import ChromeDriverManager
import time
link = "https://www.bcassessment.ca/"
options = Options()
options.add_argument("start-maximized")
options.add_argument('window-size=1920x1080')
options.add_argument('--no-sandbox')
options.add_argument('--disable-gpu')
srv=Service(ChromeDriverManager().install())
driver = webdriver.Chrome (service=srv, options=options)
waitWebDriver = WebDriverWait (driver, 10)
driver.get (link)
waitWebDriver.until(EC.element_to_be_clickable( \
(By.XPATH, "//input[@id= 'rsbSearch']"))).send_keys("106 Maple")
driver.find_element(By.XPATH, "//input[@id= 'rsbSearch']").send_keys(Keys.ARROW_DOWN)
driver.find_element(By.XPATH, "//input[@id= 'rsbSearch']").send_keys(Keys.ENTER)
time.sleep(500)
該欄位的文本輸入作業正常 - 但隨后需要按下向下鍵,然后按下回傳鍵以獲取搜索結果。但這不適用于 Selenium。
為什么會這樣以及需要什么才能進入搜索結果(例如,按下并輸入)?
uj5u.com熱心網友回復:
我在輸入搜索字串后手動看到您需要單擊搜索輸入,然后按向下箭頭,等到顯示建議的結果,然后再次按向下鍵,然后按 Enter 鍵。
另外,我明白了所以請試試這個,它應該可以作業
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from webdriver_manager.chrome import ChromeDriverManager
import time
link = "https://www.bcassessment.ca/"
options = Options()
options.add_argument("start-maximized")
options.add_argument('window-size=1920x1080')
options.add_argument('--no-sandbox')
options.add_argument('--disable-gpu')
srv=Service(ChromeDriverManager().install())
driver = webdriver.Chrome (service=srv, options=options)
waitWebDriver = WebDriverWait (driver, 10)
driver.get (link)
waitWebDriver.until(EC.element_to_be_clickable( \
(By.XPATH, "//input[@id= 'rsbSearch']"))).send_keys("106 Maple")
searc_input = driver.find_element(By.XPATH, "//input[@id= 'rsbSearch']")
searc_input.click()
time.sleep(0.1)
searc_input.send_keys(Keys.ARROW_DOWN)
time.sleep(0.4)
searc_input.send_keys(Keys.ARROW_DOWN)
time.sleep(0.4)
searc_input.send_keys(Keys.ENTER)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/351741.html
