zoukankan      html  css  js  c++  java
  • python+webdriver,选取Select下拉框中的值

    在选择下拉框中的值时遇到了困难,用driver.find_element_by_id("").send_keys("")进行赋值不能成功获取下拉框中的值。
     
    此次是补充以前的文档,以前是用xpath去获得select中的option,但是用xpath如果改变了顺序会很麻烦,也可以用Select去获得option,而且比较简单。
     
    一、使用Select(这里用的是python,如果用Java的话也可以去搜一下,网上方法很多)
    比如要选中下面select中的第2个option
    element = self.driver.find_element_by_id("Operator0")
    sel = Select(element)
    sel.select_by_value("!=")
    这样就可以获得这个option了,当然这几行代码可以合为一行
    Select(self.driver.find_element_by_id("Operator0")).select_by_value("!=")
     
     
    二、使用Xpath:  
    下面是W3C网站上关于xpath的一些知识,有兴趣的可以自己去查找来看一下。

    路径表达式结果

    /bookstore/book[1] 选取属于 bookstore 子元素的第一个 book 元素。
    /bookstore/book[last()] 选取属于 bookstore 子元素的最后一个 book 元素。
    /bookstore/book[last()-1] 选取属于 bookstore 子元素的倒数第二个 book 元素。
    /bookstore/book[position()<3] 选取最前面的两个属于 bookstore 元素的子元素的 book 元素。
    //title[@lang] 选取所有拥有名为 lang 的属性的 title 元素。
    //title[@lang='eng'] 选取所有 title 元素,且这些元素拥有值为 eng 的 lang 属性。
    /bookstore/book[price>35.00] 选取 bookstore 元素的所有 book 元素,且其中的 price 元素的值须大于 35.00。
    /bookstore/book[price>35.00]/title 选取 bookstore 元素中的 book 元素的所有 title 元素,且其中的 price 元素的值须大于 35.00。

        

    下面是我这次编写过程中与到的问题实例。
    一、具体的页面代码如下:
     

    二、编写的脚本
    driver.find_element_by_xpath("//select[@id='CerType']/option[#value=2]").click()
    通过上面的代码成功获得了“护照”。
     
    PS:推荐一个小插件,XPath Checker,Firefox的附件组件,可以直接右键查看元素的XPath。
     
     
     
     
     
                                                      发布日期:2014-03-07 10:54
  • 相关阅读:
    第六章 函数、谓词、CASE表达式 6-3 CASE表达式
    第六章 函数、谓词、CASE表达式 6-2 谓词
    第六章 函数、谓词、CASE表达式 6-1 各种各样的函数
    第五章 复杂查询 5-3 关联子查询
    第五章 复杂查询 5-2 子查询
    第五章 复杂查询 5-1 视图
    第四章 数据更新 4-3 事务
    第四章 数据库和SQL 4-3 数据的更新(UPDATE语句的使用方法)
    面向对象进阶
    多态
  • 原文地址:https://www.cnblogs.com/meitian/p/3683372.html
Copyright © 2011-2022 走看看