使用硒在网站中输入数据?
我希望每个人都过得愉快... 我的一位客户希望我创建一个将用户输入并将其输入保险车提供商网站的预绘,然后比较结果以找到最佳用户的利率。
我已经为两家公司做了,但是第三个确实很难输入文本,因为它是下拉列表。我输入了文字,但是它没有转到下一页...请帮助我,我为打扰您而道歉!!
代码
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("")
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()
I hope everyone is having a wonderful day...
One of my clients wanted me to create a programe that takes user's input and enters it into the websites of insurance car providers, then compares the results to find the best rate for the user.
I'd already done it for two firms, but the third was really difficult to input the texts because it was a drop down list. I entered the text, but it did not go to the next page... Please assist me, and I apologise for disturbing you!!
CODE
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("")
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()
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您不能使用
select(element1)
,因为element1
不是选择
node/tag,而是div
,即可以使用选择
您应该拥有的而不是
要做的是
You cannot use
Select(element1)
becauseelement1
is not aselect
node/tag but adiv
, i.e. to be able to useSelect
you should haveinstead of
What you have to do is