美文网首页
selenium踩过的坑

selenium踩过的坑

作者: 阿尼奥赛哟 | 来源:发表于2020-04-30 17:20 被阅读0次

    Python  selenium常用方法总结

    1. 显示等待和隐式等待

    1. 显示等待:WebDriverWait() 针对页面某个特定的元素设置的等待时间,等不到就一直等,直到等到位置。如果超时就报错。一般与until()和until_not()配合使用。

    官方示例:

    element = WebDriverWait(driver, 10).until(lambda x: x.find_element_by_id(“someId”))

    is_disappeared = WebDriverWait(driver, 30, 1, (ElementNotVisibleException)).until_not(lambda x: x.find_element_by_id(“someId”).is_displayed())

    2. 隐式等待:implicity_wait() 首先这参数并非一个固定的等待时间,它并不影响脚本的执行速度。其次,它并不针对页面上的某一元素进行等待。当脚本执行到某个元素定位是,如果元素可以定位,则继续执行,如果元素定位不到,则它将以轮询的方式不断地判断元素是否被定位到。假设在第六秒定位到了元素则继续执行,若直到超出设置的时长10秒还没有定位到元素,则抛出异常。

    3. 强制等待:time.sleep()

    2. 悬停操作

    #导入selenium中的actionchains的方法

    from selenium.webdriver.common.action_chains import ActionChains

    #识别需要悬停的元素

    ele = self.driver.find_element_by_class_name('member-top')

    #鼠标移到悬停元素上

    ActionChains(self.driver).move_to_element(ele).perform()

    3. Select使用

    在利用selenium进行UI自动化测试过程中,经常会遇到下拉框选项,这篇博客,就介绍下如何利用selenium的Select模块来对标准select下拉框进行操作。。。

    首先导入Select模块:

    from selenium import webdriver3 from selenium.webdriver.support.select import Select

    感兴趣的可以将鼠标指向Select,然后按住Ctrl鼠标单击,查看Select模块的源码,是如何定义封装Select的各个方法的。

    1、Select提供了三种选择某一项的方法

    1 select_by_index          # 通过索引定位

    2 select_by_value          # 通过value值定位

    3 select_by_visible_text   # 通过文本值定位

    注意事项:

    index索引是从“0”开始;

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

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

    2、Select提供了三种返回options信息的方法

    1 options                  # 返回select元素所有的options

    2 all_selected_options     # 返回select元素中所有已选中的选项

    3 first_selected_options   # 返回select元素中选中的第一个选项

    注意事项:

    这三种方法的作用是查看已选中的元素是否是自己希望选择的:

    options:提供所有选项的元素列表;

    all_selected_options:提供所有被选中选项的元素列表;

    first_selected_option:提供第一个被选中的选项元素;

    3、Select提供了四种取消选中项的方法

    1 deselect_all             # 取消全部的已选择项

    2 deselect_by_index        # 取消已选中的索引项

    3 deselect_by_value        # 取消已选中的value值

    4 deselect_by_visible_text # 取消已选中的文本值

    注意事项:

    在日常的web测试中,会经常遇到某些下拉框选项已经被默认选中,这种时候就需要用到这里所说的四种方法;

    下面以实际的代码来做个示例,被测试网页与源码截图如下:

    比如要选择3线,那么三种选择方法示例代码如下:

     # coding=utf-8 

    from selenium import webdriver 

     from selenium.webdriver.support.select import Select 

    from time import sleep 

     driver = webdriver.Chrome() 

     # 根据索引选择

    Select(driver.find_element_by_name("storeDeclare.cityLine")).select_by_index("3")

     # 根据value值选择

    Select(driver.find_element_by_name("storeDeclare.cityLine")).select_by_value("3线")

     # 根据文本值选择

    Select(driver.find_element_by_name("storeDeclare.cityLine")).select_by_visible_text("3线")

     sleep(5)

     driver.quit()

    4. Iframe

    注意界面有iframe的时候

    driver.switch_to.frame("")

    # iframe会导致xpath失效

    之后还需要返回

    driver.switch_to.default_content()

    5. 读取HTML-Table表格

    https://blog.csdn.net/weixin_34198797/article/details/86781380

    相关文章

      网友评论

          本文标题:selenium踩过的坑

          本文链接:https://www.haomeiwen.com/subject/vezzwhtx.html