元素操作(一)

一、等待----三种等待方式

1.强制等待

sleep(秒)

import time
time.sleep(5)

2.隐性等待

implicitly_wait(秒)

driver.implicitly_wait(10)

设置最长等待时间,在这个时间内加载完成,则执行下一步。

整个driver的会话周期内,设置一次即可,全局可用。

3.显性等待

明确等到某个条件满足之后,再去执行下一步操作。

程序每隔xx秒看一眼,如果条件成立后,则执行下一步,否则继续等待,直到超过最长设置时间,然后抛出TimeoutException。

WebDriverWait类:显性等待类。

WebDriverWait(driver,等待时常,轮询周期).until/until_not

expected_conditions模块:提供了一系列期望发生的条件。

presence_of_element_located:元素存在

visiblity_of_element_located:元素可见

element_to_be_clickable:元素可点击

  • 使用之前,引入相关的库:
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
  • 使用方法:

1)先确定元素的定位表达式

web_locator="xxx"

2)调用webdriverWait类设置等待总时长、轮询周期。并调用期until、until_not方法。

WebDriverWait(webdriver对象名,等待总时长,轮询周期).until(判断条件)

3)使用expected_conditions对应的方法来生成判断条件。

EC.方法名((定位方式,定位表达式))

例如:EC.presence_of_element_located((By.CSS_SELECTOR,web_locator))

例如:等待百度登陆的弹出框出现,再去操作弹出框

二、弹出框操作

弹出框有两种:

1、页面弹出框

2、windows弹出框

页面弹出框处理方式:

等待弹出框出现之后,再定位弹出框,再去操作弹出框里的元素

例如:百度登陆页面弹出框

 

windows弹出框处理方式:

1)等待弹框出现

WebDriverWait(driver,10).until(EC.alert_is_present))

2)使用switch_to方法先切换到windows弹出框

   driver.switch_to.alert

3)Alert类提供了一系列的方法

dismiss():否

accept():是

text():获取弹出框的内容

sengkeys():发送字符

 

posted @ 2018-09-06 14:09  sinder2018  阅读(30)  评论(0)    收藏  举报