webdriver调用js:
excute_script(js):调用js语法,采用同步方式,执行js代码会阻塞主线程向下执行
excute_async_script(js):采用异步方式调用js,执行代码不会阻塞主线程向下执行
滚动条操作:
一般的滚动条操作直接调用以下js语句即可滚动到页面的底部
scroll = ‘var q=document.documentElement.scrollTop=10000’
driver.excute_script(scroll)
cookie处理:
get_cookies():获取cookie信息
add_cookie():增加cookie信息
delete_cookie():删除特定cookie
delete_all_cookies():删除所有cookie
selenium常用模块之except_conditions模块:判断模块,成功返回True,一般与WebDriverWait连用
except_conditions提供的方法:
title_is():判断title是否严格等于driver.title,这个方法的取值需要加上driver
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
title_ec = EC.title_is(u"百度一下,你就知道")
print(title_ec(driver)) # 得到True或者False
driver.quit()
title_contains(title):判断title值是否在driver.title内,用法与title_is相同
presence_of_element_located():判断只要有一个符合条件的元素加载出来就返回True,参数是一个元组,一般与By模块连用
presence_of_all_element_located():判断只有所有符合条件的元素加载出来才返回True,参数是一个元组,一般与By模块连用
visibility_of_element_located():判断元素是否可以被用户看见,看见返回True,参数是一个元组
invisibility_of_element_located():判断元素是否被用户看见,看不见返回True,参数是一个元组
text_to_be_present_in_element(str):判断元素的text值是否包含了str
text_to_be_present_in_element_value(str):判断元素的value值是否包含了str
element_to_be_clickable(element):判断元素是否可以被点击
element_to_be_selected(element):判断元素是否可以被选中
alert_is_present():判断当前页面是否有alert出现
以上这些方法一般与until、until_not连用,实现判断条件
selenium常用模块之By模块:定位模块,支持selenium的八种定位方法,用法一般是通过元组与except_conditions()连用
By.ID
By.NAME
By.CLASS_NAME
By.LINK_TEXT
By.PARTIAL_LINK_TEXT
By.CSS_SELECTOR
By.TAG_NAME
By.XPATH
selenium常用模块之Select模块:定位下拉框模块,提供了三种方法用于定位
select_by_index():通过索引定位,索引从0开始
select_by_value():通过value属性定位
select_by_visible_text():通过文本值定位