首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用selenium处理Google窗体的下拉操作

使用selenium处理Google窗体的下拉操作
EN

Stack Overflow用户
提问于 2018-04-16 10:13:12
回答 1查看 3.1K关注 0票数 0

当我尝试为下拉列表编写X路径时,有人能帮助我自动降低Google Forms.As中的下拉列表吗?当我尝试访问xpath并使用element.Also发送值时,它会抛出一个错误,而不是让选择和选项元素后面有div元素和内容element.Also。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-16 10:34:36

与其使用sendKeys,不如使用Select()进行下拉,如下所示:

例如。如果您有性别作为下拉,您需要选择性别,您可以选择如下:

代码语言:javascript
运行
复制
from selenium.webdriver.support.select import Select
from selenium.webdriver.chrome.webdriver import WebDriver

driver = WebDriver()  # setup web driver
driver.get(<url>)  # retrive url
gender_select = Select(driver.find_element_by_name('gender'))  # get element by name or id or xpath
gender_select.select_by_visible_text('Male')  # here 'Male' is the text displayed on page so you can select item from dropdown menu by text visible in drop down menu

更新:

如果没有为您的目的选择标记,Select将无法工作,下面是现场演示:

代码语言:javascript
运行
复制
def foo(url="https://docs.google.com/forms/d/e/1FAIpQLScbs4_3hPNYgjUO-hIa-H1OfJiDZ-FIY1WSk31jGyW5UtQ-Ow/viewform", opt="Option 2", delay=20):
    from selenium.webdriver.chrome.webdriver import WebDriver
    import time

    driver = WebDriver()
    driver.get(url)
    driver.find_element_by_class_name("quantumWizMenuPaperselectOptionList").click()
    options=driver.find_element_by_class_name("exportSelectPopup")
    time.sleep(3)
    print(options)
    contents = options.find_elements_by_tag_name('content')
    [i.click() for i in contents if i.text == opt]

foo()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49854786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档