Selenium基础篇
frame定位
- iframe有id或者有name的情况,可以按照switch_to.frame("id")或者是switch_to.frame("name")
- 如果ifame既没有id也没有name
- 通常可以 定位frame位置,并选取frame
framea = driver.find_element_by_xpath("/html/body/......div/iframe")
driver.stwitch_to.frame(framea) - 或者可以用tag_name来定位:
framea = driver.find_element_by_tag_name("iframe")
driver.switch_to.frame(framea)
- 通常可以 定位frame位置,并选取frame
- 跳出iframe,进入default content
driver.switch_to.default_content() - 当涉及到多frame嵌套切换的时候,可以使用以下三个方法实现自由切换
-
- driver.switch_to.parent_frame()
- driver.switch_to.frame()
- driver.switch_to.default_content()
xpath定位
1.div[1]与div使用时需小心,div[1]表示同一层下存在多个div,要定位的是第一个div,而div则表示同一层下只有一个div。
当同一层下有多个div,想要定位第一个div时,[1]不可省略。
Properties of the WebDriver class(webdriver class提供以下属性访问浏览器)
|
Property/attribute
|
Description
|
Example
|
|---|---|---|
| current_url | 获得显示在browser上的current url | driver.current_url |
| current_window_handle | 获得当前窗口的handle | driver.current_window_handle |
| name |
This gets the name of the underlying browser for this instance |
driver.name |
| orientation | 获得当前设备方向 | driver.orientation |
| page_source | 获得当前页面的source | driver.page_source |
| title | 获得当前页面的title | driver.title |
| window_handles | 获得当前session内的所有窗口的handles | driver.window_handles |
Methods of the WebDriver class(与浏览器交互的各种方法)
|
Method
|
Description
|
Example
|
|---|---|---|
| back() | 返回当前session浏览器历史的上一步 | driver.back() |
| close() | 关闭当前浏览器窗口 | driver.close() |
| forward() | 返回当前session浏览器历史的下一步 | driver.forward() |
| get(url) | 导航到或启动浏览器 | driver.get("http://www.baidu.com") |
| maximize_window | 窗口最大化 | driver.maximize_window() |
| quit() | 退出driver并关闭所有关联窗口 | driver.quit() |
| refresh | 创新当前页面 | driver.refresh() |
| switch_to.active_element | 获取当前焦点元素 | driver.switch_to.active_element.send_keys() ※.send_keys()表示对获取焦点元素进行操作 |
| switch_to_alert() | 切换focus到alert | driver.switch_to_alert() |
| switch_to.default_content() | 切换focus到默认frame | driver.switch_to.default_content() |
| switch_to.frame() | iframe切换 | driver.switch_to_frame('frame name') |
| switch_to.window(window name) | 切换focus到指定window | driver.switch_to.window(windowname) |
| implicity_wait(time to wait) | 在指定时间内等待直到找到元素或命令执行完毕 | |
| set_page_load_timeout(time to wait) | 设置等待页面全部load完毕的时间 | driver.set_page_load_timeout(30) |
| set_script_timeout(time to wait) | 设置异步脚本的超时时间 | driver.set_script_timeout(30) |
Properties of the WebElement class
|
Property/attribute
|
Description
|
Example
|
|---|---|---|
| size | 获得元素size | element.size |
| tag_name | 获得元素的HTML tag name | element.tag_name |
| text | 获得元素的text | element.text |
Methods of the WebElement class
|
Method
|
Description
|
Example
|
|---|---|---|
| clear() | 清除textbox或 text area的元素 | element.clear() |
| click() | 点击element | element.click() |
| get_attribute(name) | 从element获取属性值 | element.get_attribute(xxxx) |
| is_displayed() | check元素对用户是否可见 | element.is_displayed() |
| is_enabled() | 判断元素是否被使用 | element.is_enabled() |
| is_selected() | 判断元素是否被选择,通常用于check radio button或checkbox | element.is_selected() |
| send_keys() | 模拟输入元素 | element.send_keys("xxxx") |
| submit() | 提交表单,提交的是parent form | element.submit() |
| value_of_css_property(property_name) | 获取CSS property的值 | element.value_of_css_property("background_color") |
Properties of the Select class
|
Property/attribute
|
Description
|
Example
|
|---|---|---|
| all_selected_options | 获取属于此dropdown或者list的所有selected option的列表 | select_element.all_selected_options |
| first_selected_option | 获取dropdown或者list的第一个selected option或者当前selected option | select_element.first_selected_option |
| options | 获取dropdown或者list的所有options 列表 | select_element.options |
Methods of the Select class
|
Method
|
Description
|
Example
|
|---|---|---|
| select_by_index() | 通过索引选取option | select_element.select_by_index(1) |
| select_by_value() | 通过value选取options | select_element.select_by_value("xxxx") |
| select_by_visible_text(text) | 通过显示的text选取options | select_element.select_by_visible_text("xxxx") |
| deselect_all() | 清除multiselect下拉框的所有已选择项目 | select_element.deselect_all() |
| deselect_by_index() | ||
| deselect_by_value() | ||
| deselct_by_visible_text(text) |
浙公网安备 33010602011771号