繁体   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