zoukankan      html  css  js  c++  java
  • Python+webdriver下拉菜单及鼠标悬浮菜单定位

    (1)定位<select>标签的下拉菜单

    通过代码定位,首先导入Select模块:

    from selenium.webdriver.support.select import Select

    Select提供了三种方法:

    1 select_by_index          # 通过索引定位
    2 select_by_value          # 通过value值定位
    3 select_by_visible_text   # 通过文本值定位

    #通过index进行选择
    Select(driver.find_element_by_id("aoe")).select_by_index("1")
    #通过value进行选择
    #Select(driver.find_element_by_id("aoe")).select_by_value("20")
    #通过选项文字进行选择
    #Select(driver.find_element_by_id("aoe")).select_by_visible_text("通用卡")

    注意事项:

    index索引是从“0”开始;

    value是option标签的一个属性值,并不是显示在下拉框中的值;

    visible_text是在option标签中间的值,是显示在下拉框的值;

    Select only works on <select> elements(Select只对<select>标签的下拉菜单有效)

    (2)定位非<select>标签的下拉菜单

    定位非<select>标签下的选项,采用二次定位的方法:即需要先定位到下拉框,再定位选项

    driver.find_element_by_id("aoe").find_element_by_name("swk").click()

    注意:也可用此二次定位方法来定位<select>标签下的选项

    #-*-coding:utf-8-*-
    from selenium import webdriver
    from selenium.webdriver.common.action_chains import ActionChains
    from selenium.webdriver.support.select import Select
    import time
    driver = webdriver.Chrome()
    driver.get('http://www.baidu.com')
    driver.maximize_window()
    #悬浮菜单定位 menu
    = driver.find_element_by_link_text('设置') ActionChains(driver).move_to_element(menu).perform() driver.find_element_by_link_text('搜索设置').click() time.sleep(3)
    #Select定位下拉菜单(必须是select标签) Select(driver.find_element_by_id(
    'nr')).select_by_visible_text('每页显示20条') time.sleep(3)
    #二次定位定位下拉菜单 driver.find_element_by_id(
    'nr').find_element_by_css_selector("option[value='50']").click() time.sleep(3) driver.quit()

    (3)鼠标悬浮菜单定位

    引入ActionChains模块 

    from selenium.webdriver.common.action_chains import ActionChains

    driver = webdriver.Chrome()

    先定位到顶级菜单

    menu = drvier.find_element_by_link_text('aoe')

    再将鼠标移到悬浮菜单上

    ActionChains(driver).move_to_element(menu).perform()

    再定位到相应的元素并点击

    driver.find_element_by_id('mlgb').click()

    举例如下:

    打开百度---设置---搜索设置(鼠标悬浮菜单定位)----单选框定位----单选框定位----select下拉菜单定位---select下拉菜单定位---单选框定位---alert弹出框定位

     1 #-*-coding:utf-8-*-
     2 from selenium import webdriver
     3 import time
     4 from selenium.webdriver.common.action_chains import ActionChains#引入函数模块
     5 from selenium.webdriver.support.select import Select#引入函数模块
     6 swk = webdriver.Chrome()
     7 swk.maximize_window()
     8 swk.get("https://www.baidu.com")
     9 zbj = swk.find_element_by_link_text('设置')#先定位到顶级菜单
    10 ActionChains(swk).move_to_element(zbj).perform()#再将鼠标移动到菜单上面
    11 swk.find_element_by_link_text('搜索设置').click()#最后定位菜单元素并点击
    12 time.sleep(3)
    13 swk.find_element_by_id("s1_2").click()#单选框定位
    14 swk.find_element_by_id('SL_1').click()#单选框定位
    15 Select(swk.find_element_by_id('nr')).select_by_value("20")#select下拉菜单定位
    16 Select(swk.find_element_by_id('issw1')).select_by_value('2')#select下拉菜单单定位
    17 swk.find_element_by_id('sh_1').click()
    18 swk.find_element_by_link_text('保存设置').click()
    19 swk.switch_to.alert.accept()#alert弹出框"确认"

    举例如下:

    打开百度---更多产品---音乐(悬浮下拉菜单定位)

     1 #-*-coding:utf-8-*-
     2 from selenium import webdriver
     3 import time
     4 from selenium.webdriver.common.action_chains import ActionChains
     5 driver = webdriver.Chrome()
     6 driver.maximize_window()
     7 driver.get("https://www.baidu.com")
     8 element = driver.find_element_by_link_text('更多产品')
     9 ActionChains(driver).move_to_element(element).perform()
    10 driver.find_element_by_link_text('音乐').click()
    11 time.sleep(3)
    12 driver.quit()
  • 相关阅读:
    【noip2014】解方程
    2013南大专业课试题答案
    如何计算多边形面积
    坐标转换成点
    几何对象和空间参考
    StoryBoard(动画故事版)
    五种画刷
    SL的六种变换
    SL中MediaElement(视频播放)
    SL的四种样式
  • 原文地址:https://www.cnblogs.com/yaoze2018/p/10422208.html
Copyright © 2011-2022 走看看