[英]Choosing an option in a dynamic list with Python
我對 Python 和 selenium 完全陌生,但一直在嘗試創建一個腳本來預訂我的高爾夫俱樂部的開球時間。
我已經能夠讓腳本登錄,選擇正確的時間和日期並將我自己添加到預訂中。
我遇到困難的地方是試圖將其他“成員”添加到預訂中。 一旦我添加了我自己,您需要單擊“添加成員”按鈕,這會打開一個帶有動態列表的模態 window,您必須開始輸入名稱,它會在您輸入時自動建議。 我可以讓腳本輸入我想要的名字,但不能從列表中輸入 select。
如果我手動執行此過程,我可以鍵入名稱並按下向下箭頭鍵並返回兩次,即 select 並確認(關閉模式)。 我試過 using.send_keys 但似乎沒有任何效果。
下面是我與 email 一起使用的代碼,密碼虛擬內容。
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.keys import Keys
import time
driver = webdriver.Chrome()
driver.get("https://www.manorgolfclub.net/members/login")
# Your Manor credentials
m_name = "blank@blank.com"
m_pass = "Blank123"
ryan = "Ryan Smith"
# Fill credentials
driver.find_element_by_id ('username').send_keys(m_name)
driver.find_element_by_id ('password').send_keys(m_pass)
driver.find_element_by_xpath ("//button[contains(text(),'Login')]").click();
driver.get ('https://www.manorgolfclub.net/members/book/golfers?date=07-03-2022&time=07:46')
driver.find_element_by_xpath ('html/body/div[2]/section[1]/div/form/div[2]/div[1]/div[1]/div/a[1]').click();
driver.find_element_by_id ('addMemberInput').send_keys(ryan)
driver.find_element_by_id ('addMemberInput').send_keys(Keys.DOWN)
# driver.quit()
我在下面添加了一個屏幕截圖,顯示了 Chrome 中的檢查器面板,突出顯示的行上方是“tt-open-這僅在我開始輸入名稱時出現,並且一旦我單擊它就會再次出現。 檢查面板截圖
任何幫助將不勝感激,如果我能提供其他任何幫助,請告訴我!
嘗試使用 selenium 的 ActionChain。 這是一個例子。
from selenium.webdriver import ActionChains
actions = ActionChains(driver)
actions.send_keys(Keys.DOWN).perform()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.