为了账号安全,请及时绑定邮箱和手机立即绑定

Selenium 有没有办法从谷歌表单的下拉菜单中选择一个选项(python)

Selenium 有没有办法从谷歌表单的下拉菜单中选择一个选项(python)

九州编程 2023-09-11 16:57:28
谷歌表单中的下拉菜单不使用任何标签,而是使用标签和java。我无法找到任何可以从谷歌表单的下拉菜单中选择的内容。他们的下拉菜单的 HTML 太长了,所以为了节省篇幅,我将提供一个 google 表单示例。链接到示例
查看完整描述

3 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

我通常通过等待 Selenium 找到下拉菜单来处理此问题,然后使用宏或 RPA 工具(例如 Appprobotic)单击它并浏览选项(同时调整每次单击或选项移动之间的时间)。像这样的东西应该适合你:


import win32com.client

x = win32com.client.Dispatch("AppRobotic.API")

from selenium import webdriver


# navigate to Google Form

driver = webdriver.Firefox()

driver.get('https://forms.gle/SZftJSkvy9YWbktF9') 

# sleep 1 second

x.Wait(1000)


link = driver.find_element_by_link_text('Mail')

if len(link) > 0

    link[0].click()

# sleep 1 second

x.Wait(1000)

# press down arrow key

x.PressDownArrow

x.Wait(100)

x.PressDownArrow

x.Wait(100)


查看完整回答
反对 回复 2023-09-11
?
胡说叔叔

TA贡献1804条经验 获得超8个赞

亲爱的试试这个,我想这会起作用的


    from selenium import webdriver 

    import time



    driver = webdriver.Chrome("chromedriver/chromedriver")

    driver.get('https://docs.google.com/forms/d/e/1FAIpQLSdpyJ9UBFtsQDZHhK7KsYuILm5kh68jvY5DeFAKIBPTxx4RCQ/viewform')

'''For click drop down'''

    driver.find_element_by_xpath('//*[@id="mG61Hd"]/div/div/div[2]/div/div/div[2]').click()

'''Time for wait --> 1 second'''

    time.sleep(1)

'''Select the option '''

    driver.find_element_by_xpath('//*[@id="mG61Hd"]/div/div/div[2]/div/div/div[2]/div[2]/div[4]/span').click()



查看完整回答
反对 回复 2023-09-11
?
aluckdog

TA贡献1847条经验 获得超7个赞

此页面有自定义选择和选项,而不是默认选项。您应该像使用常规 Web 元素一样使用它,只需使用常规定位器来查找元素然后进行交互即可。


尝试这个:


driver = webdriver.Chrome()

driver.get("https://docs.google.com/forms/d/e/1FAIpQLSdpyJ9UBFtsQDZHhK7KsYuILm5kh68jvY5DeFAKIBPTxx4RCQ/viewform")


driver.implicitly_wait(4)

# Click on top option placeholder to open a drop down:

driver.find_element_by_xpath("//div[@role='option' and contains(@class, 'isPlaceholder')]").click()


sleep(1) # Wait for options to load

options = driver.find_elements_by_xpath("//div[@role='option' and not(contains(@class, 'isPlaceholder'))]")

# And now, let's click on the 4th one by index:

options[3].click()

希望这有帮助!


查看完整回答
反对 回复 2023-09-11
  • 3 回答
  • 0 关注
  • 101 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信