基于python的selenium学习2--等待元素、frame切换、css选择

Sleep方案的弊病

  固定的等待时间,导致测试用例执行时间很长

为什么click函数不像get函数等待页面刷新?

  click未必会导致页面更新。 get一定会导致页面更新

Selenium的解决方案

  选择一个元素的时候

    代码设定一个最大等待时长

    周期性(每隔半秒钟)重新寻找该元素,直到该元素被找到(返回)或者超出指定最大等待时长(返回空列表或者抛出异常)

隐式等待

  全局的设定,后面所有的选择元素的代码都不需要单独的指定周期性等待

  driver.implicitly_wiat(10)

显式等待

  为一个操作专门指定等待时间

  

frame的处理

  什么是frame和iframe:

    请参考--http://www.w3school.com.cn/html/html frames.asp

  切换到frame里面:

    driver.switch_to.frame(fram_reference)

    frame元素的name属性或ID属性

    索引值(从0开始):0

    frame所对应的WebElement:driver.find_element_by_tag_name("iframe")

  切换回主HTML里面:

    driver.switch_to.default_content()

   注意那些会变的ID

CSS选择器

选择元素的方法 tag/id/class

  根据tag名

    p{color: red;}

  根据ID

    #food{color: red;}

  根据class

    .vegetable{color: red;}

  根据tag名和class组合写(如果多个)

    span.vegetable{color: red;}

driver.find_elements_by_css_selector()

猜你喜欢

转载自www.cnblogs.com/yangguangrun/p/10742991.html
今日推荐