我希望每個人都有美好的一天... 我的一個客戶希望我創建一個程式,該程式接受用戶的輸入并將其輸入到保險汽車提供商的網站,然后比較結果以找到用戶的最佳費率。
我已經為兩家公司做過,但是第三家真的很難輸入文本,因為它是一個下拉串列。我輸入了文字,但沒有轉到下一頁...請幫助我,非常抱歉打擾您!!
代碼
from selenium import webdriver
import os
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common import keys
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait, Select
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
import time
PATH= "F:\\chromedriver_win32\\chromedriver.exe"
driver = webdriver.Chrome(PATH)
driver.get("https://insurify.com/")
search = WebDriverWait(driver, 30).until(
EC.presence_of_element_located((By.ID, "zipcodeInput"))
)
search.send_keys('34997')
search.send_keys(Keys.RETURN)
element1 = driver.find_element_by_css_selector("#tt-fe8cbbe5-688b-40c3-4ce5-fdb588b05559_listbox > div.tt-dataset.tt-dataset-car_year")
drp = Select(element1)
drp.select_by_visible_text("2016")
# element1.send_keys("2016")
# element1.send_keys(Keys.RETURN)
element2 = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, "#typeahead-input > div > span.twitter-typeahead > input:nth-child(2)"))
)
element2.send_keys(' BMW')
element2.send_keys(Keys.RETURN)
element3 = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, "#typeahead-input > div > span.twitter-typeahead > input:nth-child(2)"))
)
element3.send_keys(' 4-Series')
element3.send_keys(Keys.RETURN)
element4 = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, "#typeahead-input > div > span.twitter-typeahead > input:nth-child(2)"))
)
element4.send_keys(' 428i')
element4.send_keys(Keys.RETURN)
time.sleep(10)
element5 = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, "#typeahead-input > div > span.twitter-typeahead > input:nth-child(2)"))
)
element5.send_keys(" Grain Coupe")
element5.send_keys(Keys.RETURN)
time.sleep(50)
choose = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, "#used_for_work > span"))
)
choose.click()
圖片
uj5u.com熱心網友回復:
你不能使用Select(element1),因為element1不是select節點/標簽而是一個div,即能夠使用Select你應該有
<select role="presentation" class="tt-dataset tt-dataset-car_year">
代替
<div role="presentation" class="tt-dataset tt-dataset-car_year">
你要做的是
year = 2016
selection = driver.find_element_by_xpath(f'//div[contains(@class, "tt-dataset-car_year")]/child::div[contains(text(), "{year}")]')
selection.click()
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/480114.html
