<menu id="mqgc0"></menu>
  • <menu id="mqgc0"></menu><menu id="mqgc0"></menu><input id="mqgc0"><u id="mqgc0"></u></input>
    <input id="mqgc0"><u id="mqgc0"></u></input>
  • <optgroup id="mqgc0"></optgroup>
  • <input id="mqgc0"><tt id="mqgc0"></tt></input>
  • 实用文章:Python + Selenium(十四)下拉菜单处理

    电脑杂谈  发布时间:2020-11-13 22:00:51  来源:网络整理

    浏览器下拉菜单_谷歌浏览器下拉菜单_火狐浏览器下拉菜单

    传统的下拉菜单“选择”元素由“选择” +一系列选项元素组成。

    <select id="source" name="source">
     
     
     
     

    对于下拉菜单,我们首先单击下拉选项,然后单击展开的选项之一以完成选择。

    谷歌浏览器下拉菜单_火狐浏览器下拉菜单_浏览器下拉菜单

    如果使用Selenium进行模拟,则需要首先单击Select元素,然后单击Option,这有点麻烦。我们可以通过两种方式处理它。

    1.直接通过Xpath单击该选项

    通过Xpath单击直接选项,您可以用一句代码完成操作,而无需单击下拉菜单。

    谷歌浏览器下拉菜单_火狐浏览器下拉菜单_浏览器下拉菜单

    以上面的部分HTML代码为例:

    driver.find_element_by_xpath('//*[@id="source"]/option[@value="1002"]').click()
    

    2.使用选择类别

    火狐浏览器下拉菜单_浏览器下拉菜单_谷歌浏览器下拉菜单

    虽然使用Xpath可行,但缺乏灵活性。

    WebDriver中专门提供了Select类来处理下拉菜单。

    # 导入 Select 类
    from selenium.webdriver.support.select import Select
    # 找到下拉菜单元素
    e = driver.find_element_by_id('source')
    select = Select(e)
    # 按文本选择
    select.select_by_visible_text('合作伙伴')
    

    火狐浏览器下拉菜单_浏览器下拉菜单_谷歌浏览器下拉菜单

    Select类还提供按选项索引的选择和按值的选择:

    select.select_by_index(1)
    select.select_by_value('1003')
    

    因为我们经常使用索引和可见文本来选择选项。所以我们简单地封装它:

    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.select import Select
    def select(driver, locator, option=0):
        e = Select(driver.find_element(*locator))
        # 如果选项为整数,则通过 index 选择
        if isinstance(option, int):
            e.select_by_index(option)
        # 如果选项为字符串,则通过 visible_text 选择
        elif isinstance(option, str):
            e.select_by_visible_text(option)
        else:
            raise ValueError('只能通过index或可见文本进行下拉选项选择!')
    # 使用
    select(driver, (By.ID, 'source'), '合作伙伴')
    

    在处理下拉菜单时需要注意。这仅适用于“选择”标记元素。如今,网页上有许多由ul或span组成的下拉菜单,这种方法无法处理。


    本文来自电脑杂谈,转载请注明本文网址:
    http://www.pienmashup.com/a/shumachanpin/article-333075-1.html

      相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...
      重庆彩票