我試圖將文本發送到google flights出發城市輸入框。我能夠找到它,但是當我嘗試將其發送給send_keys
時,我收到錯誤element not visible
。硒怎麼可能找到輸入框,但是當我發送密鑰時,它不可用。我沒有這個錯誤,直到我從我的webdriver從firefox切換到chrome。我的代碼如下Selenium發現元素但無法發送文本
import
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
class Bot:
def __init__(self):
# self.browser = webdriver.Firefox(executable_path='./geckodriver')
self.browser = webdriver.Chrome('./chromedriver')
self.departure_city = "COU"
self.destination_city = "HND"
self.departure_day = "December 1"
self.return_day = "December 10"
self.prices = []
self.Run()
def Run(self):
try:
self.SetFlight()
self.SetDates()
self.FindPrices()
self.SendText()
time.sleep(10)
self.browser.quit()
except Exception as ex:
print(ex)
self.browser.quit()
def SetFlight(self):
self.browser.get('https://www.google.com/flights/');
departure_take_off_boxes = self.browser.execute_script(
"return document.querySelectorAll('.EIGTDNC-Kb-f.EIGTDNC-Kb-b')")
print(departure_take_off_boxes[0].get_attribute('outerHTML'))
print(departure_take_off_boxes[1].get_attribute('outerHTML'))
self.browser.implicitly_wait(20)
departure_take_off_boxes[0].send_keys(self.departure_city)
departure_take_off_boxes[0].send_keys(Keys.RETURN)
time.sleep(1)
# departure_take_off_boxes[1].send_keys(self.destination_city)
# departure_take_off_boxes