【发布时间】:2021-09-06 10:03:22
【问题描述】:
我想在hotelstars.eu 上自动搜索斯图加特(德国)附近的五星级酒店,并用selenium 框架编写了一个python 脚本。我寻找了类似的问题,但没有任何效果。
这是我在单独文件 (browserDriver.py) 中的浏览器驱动程序代码:
#-*-coding:utf-8-*-
import os
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument('--ignore-certificate-errors')
options.add_argument('--incognito')
chromedriver = r"\Users\simon\Documents\chromedriver_win32\chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
还有searchAutomattecally_hotelstars_eu.py - 文件:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Select
import browserDriver as bd
import time
val_land = 'Germany'
val_city = 'Stuttgart'
val_radius = '100'
val_stars = '5'
bd.driver.get('https://www.hotelstars.eu/de/deutschland/service/hotelsuche/')
bd.driver.implicitly_wait(10)
# accept Cookies
bd.driver.find_element(By.ID, '564').click()
print('- - - Status: Cookies accepted')
element_land =bd.driver.find_element(By.NAME, 'country')
print(element_land.text)
all_options = element_land.find_elements(By.TAG_NAME, 'option')
for option in all_options:
if option == val_land:
select_land = Select(option)
print('- - - Status: Geeeeeeeeeht')
print('- - - Status: if-Bedingung beendet')
select_land.select(By.Value, val_land)
print('- - - Status: ', select_land)
element_stadt = bd.driver.find_element(By.ID, 'city')
element_stadt.send_keys(val_city)
element_radius = bd.driver.find_element(By.ID, 'radius')
select_radius = Select(bd.driver.find_element_by_name('radius'))
select_radius.select_by_value(val_radius)
element_stars = bd.driver.find_element(By.ID, 'stars')
select_stars = Select(bd.driver.find_element(By.NAME, 'stars'))
select_stars.select_by_value(val_stars)
bd.driver.find_element_by_id("sendbtn").click()
网站链接hotelstars.eu
这里是错误信息:
Traceback (most recent call last):
File "...\searchAutomatecally_hotelstars_eu.py", line 28, in <module>
element_land =bd.driver.find_element(By.NAME, 'country')
File "...\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 976, in find_element
return self.execute(Command.FIND_ELEMENT, {
File "...\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "...\lib\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":"[name="country"]"}
(Session info: chrome=93.0.4577.63)
有人可以帮忙吗?
【问题讨论】:
标签: python selenium selenium-webdriver selenium-chromedriver