- selenium
- 元素定位
- 基本语句
- find_element('key','value')
- 有多个元素符合定位条件时仅返回第一个,若没有则抛出异常
- 有多个元素符合定位条件时仅返回第一个,若没有则抛出异常
- find_element_by_key('value')
- 有多个元素符合定位条件时仅返回第一个,若没有则返回none
- 有多个元素符合定位条件时仅返回第一个,若没有则返回none
- find_elements('key','value')
- 以列表形式返回符合条件的所有元素,若没有则返回空列表
- 以列表形式返回符合条件的所有元素,若没有则返回空列表
- find_element('key','value')
- 基础知识
- 兄弟元素
- 同缩进
- 同缩进
- 父子元素
- 差级缩进
- 差级缩进
- 兄弟元素
- id
- 不重复,仅有一个
- 不重复,仅有一个
- class name(特指具有class属性的元素)
- 包含多个类的元素叫复合样式,不能直接定位,可使用如下的css selector定位
- 包含多个类的元素叫复合样式,不能直接定位,可使用如下的css selector定位
- tag name
- 一般用于同类元素,比如说input
- 返回同类元素的个数
- elements = driver.find_elements('tag name', 'input') print(len(elements))
- elements = driver.find_elements('tag name', 'input') print(len(elements))
- 一般用于同类元素,比如说input
- xpath(万能,可在chrome中$x调试)
- 绝对路径法(需要从根逐级写到元素位置 )
- ('xpath','/html/xxx..../xxx')
- ('xpath','/html/xxx..../xxx')
- 相对路径法(从定位元素往上找到能唯一定位的父元素为止)
- ('xpath','//唯一父元素/tr[3]/td[2]/xxx')
- ('xpath','//唯一父元素/tr[3]//xxx')
- 注:有省略时可同时使用多个//
- 注:元素位置下标从1开始
- ('xpath','//唯一父元素/tr[3]/td[2]/xxx')
- 属性定位
- 注意单双引号
- 注意单双引号
- 模糊定位
- 模糊定位中的text()表示查找元素文本
- ('xpath',"//元素标签或*号[contains(text(),‘元素中包含的文本关键字’)]")
- 模糊定位中的text()表示查找元素文本
- 调试-在Chrome中检验Xpath的有效性
- 调试台-Console
- 语法:$x("Xpath")
- 调试台-Console
- 绝对路径法(需要从根逐级写到元素位置 )
- 基本语句
- 元素等待
- improt time
- 强制等待
- time.sleep()
- 效率低,不能大量使用
- time.sleep()
- 隐式等待
- implicitly_wait()
- 只需设置一次,全局有效
- 设置的为最长等待时间
- 元素出现即刻停止等待
- implicitly_wait()
- 显示等待
- 语法操作
- 导入
- from selenium.webdriver.support.wait import webdriverwait
- from selenium.webdriver.support import expected_conditions as EC
- from selenium.webdriver.support.wait import webdriverwait
- 常见EC方法
- title_is(strtitle)
- 判断title是否为精确预期值
- 判断title是否为精确预期值
- title_contains(strtitle)
- 判断title是否包含指定字符串
- 判断title是否包含指定字符串
- presence_of_element_located(locator)
- 判断元素是否在dom树内,不代表元素一定可见
- 判断元素是否在dom树内,不代表元素一定可见
- visibility_of_element_located(locator)
- 判断元素是否可见,可见代表非隐藏,并且元素宽高皆不为0
- 判断元素是否可见,可见代表非隐藏,并且元素宽高皆不为0
- invisibility_of_element_located(locator)
- 判断元素是否不可见
- 判断元素是否不可见
- element_to_be_clickable(locator)
- 判断某个按钮元素是否可见并且enable的,这样的话才叫可点击
- 判断某个按钮元素是否可见并且enable的,这样的话才叫可点击
- text_to_be_present_in_element(locator,txet)
- 判断某个元素中的text是否包含预期字符串
- 判断某个元素中的text是否包含预期字符串
- title_is(strtitle)
- 使用示例
- webdriverwait(driver,5).until(EC.text_to_be_present_in_element(('id','msg'),'出错啦'))
- 说明:locator为定位方法
- webdriverwait(driver,5).until(EC.text_to_be_present_in_element(('id','msg'),'出错啦'))
- 导入
- 可针对每一个元素进行单独设置
- 若显示隐式等待同时设置,则以最长等待时间为准
- 语法操作
- improt time
- 元素操作
- 常用复合操作
- 复选框常见操作
- is_displayed() is_enabled() is_selected()
- is_displayed() is_enabled() is_selected()
- 发送复合按键
- from selenium.webdriver.common.keys import Keys send_keys(Keys.SHIFT,"xxx")
- 示例:send_keys(Keys.CONTRAL+'a')
- 全选
- 全选
- 示例:send_keys(Keys.CONTRAL+'a')
- from selenium.webdriver.common.keys import Keys send_keys(Keys.SHIFT,"xxx")
- 下拉列表常见3个操作
- from selenium.webdriver.support.ui import Select
- Select(driver.find_element('tag name', 'select')).select_by_index(3)
- 以顺序选择
- 以顺序选择
- Select(driver.find_element('tag name', 'select')).select_by_value('sh')
- 以value选择
- 以value选择
- Select(driver.find_element('tag name', 'select')).select_by_visible_text('成都')
- 以文本选择
- 以文本选择
- Select(driver.find_element('tag name', 'select')).select_by_index(3)
- from selenium.webdriver.support.ui import Select
- 复选框常见操作
- frame
- switch_to.frame()
- 从A frame切到B frame
- 从A frame切到B frame
- switch_to.default_content()
- 从B frame切回A frame
- 从B frame切回A frame
- switch_to.frame()
- 常用复合操作
- 元素定位
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。