我在那裏的錯誤出現在我的Python GUI說明一個問題,「ElementNotVisibleException:消息:元素當前不可見,因此可能無法與之交互」,因此它停止我的腳本。元素不可見的錯誤(Python中,硒)
幾乎我具有低於其中I選擇的乘客在其離港航班通過選擇座椅座位的圖像,下一個單選按鈕被選中,然後另一個座位被選擇並繼續。
然而,對於選擇在離港航班最後一個乘客座位後,它會自動去降低入站列表,並在那裏選擇第一個乘客的單選按鈕,但腳本錯誤停止。
我試圖使用XPath等待平面地圖入站地圖點擊入境旅客出庭說明,但它不喜歡這一點。
我的問題是,我怎麼能拿到劇本來選擇進港航班座位,酷似出港航班一旦它從出站開關入站?
下面是代碼我有選擇乘客和他們的席位:
#seats selection - outbound
for outbound_passenger in driver.find_elements_by_css_selector("ol[data-flightbound='Outbound'] li[data-personid]"):
outbound_passenger.click()
#driver.find_elements_by_css_selector("ol.passengerlist li[data-personid]"):
outbound_has_infant = outbound_passenger.get_attribute("data-hasinfant")
# choose seats
if outbound_has_infant:
# select a non-selected infant seat
outbound_seat = driver.find_element_by_css_selector(".planebody a.seat.infant:not(.reserved):not(.selected)")
else:
# select a non-reserved non-selected seat
outbound_seat = driver.find_element_by_css_selector(".planebody a.seat:not(.reserved):not(.selected)")
print("Passenger: %s, choosing seat: %s" % (outbound_passenger.text.strip(), outbound_seat.get_attribute("data-seat")))
outbound_seat.click()
inbound_plan = wait.until(EC.visibility_of_element_located((By.XPATH, "/html/body/div[3]/form/div[1]/div/div[1]/div[15]/div[2]/div/div[2]/div[2]")))
#seats selection - inbound
for inbound_passenger in driver.find_elements_by_css_selector("ol[data-flightbound='Inbound'] li[data-personid]"):
inbound_passenger.click()
#driver.find_elements_by_css_selector("ol.passengerlist li[data-personid]"):
inbound_has_infant = inbound_passenger.get_attribute("data-hasinfant")
# choose seats
if inbound_has_infant:
# select a non-selected infant seat
inbound_seat = driver.find_element_by_css_selector(".planebody a.seat.infant:not(.reserved):not(.selected)")
else:
# select a non-reserved non-selected seat
inbound_seat = driver.find_element_by_css_selector(".planebody a.seat:not(.reserved):not(.selected)")
print("Passenger: %s, choosing seat: %s" % (inbound_passenger.text.strip(), inbound_seat.get_attribute("data-seat")))
inbound_seat.click()
你的意思是因爲滾動元素不在視圖中?編輯:我的壞。你的意思是,下一個座位計劃仍然沒有出現,因此,不可見 – Obsidian
當我有這樣的問題時,我總是添加一個相當大的time.sleep,以檢查它是否是一個JavaScript更改速度慢於Selenium檢查它的DOM,或者這是我的代碼選擇元素錯誤的方式。一個小小的建議,嘗試添加ID的HTML標記,它會簡單地選擇你和調試 –
@Obsidian是喜歡它似乎無法繼續單選按鈕的點擊,因爲當我們從出站名單跳到入名單,這架飛機的座位計劃從出站變爲入站,因此該短暫時刻導致錯誤 – BruceyBandit