簡體   English   中英

使用 Python 在動態列表中選擇一個選項

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM