窗口,截屏,警告框,鼠标,键盘,内嵌,多标签等方法
"""NoSuchElementException 找不到元素
1、元素表达式写错了 解决方案就是,写一个正确的表达式
2、元素表达式没错,但是元素的确不在当前界面上3、元素等待,元素未加载完成,需要等待
4、内嵌网页、多标签页"""
```python
# 获取元素的尺寸
ele = driver.find_element_by_tag_name("button")print(ele.size)
# 获取元素文本
ele = driver.find_element_by_xpath("//h1")print(ele.text)
# 获取元素属性
print(ele.get_attribute("class"))
```python
# 自定义窗口大小
driver.set_window_size(600, 600)
- 设置最小化浏览器
driver.minimize_window()
- 设置全屏显示
driver.maximize_window()
- 后退,退到首页
driver.back()
- 前进
driver.forward()
- 刷新
driver.refresh()
- 截屏,截取整个页面
driver.get_screenshot_as_file("./all.png")
- 截取单个元素
driver.find_element_by_css_selector("元素").screenshot("./ele.png")
- 警告框处理
# 触发对话框
driver.find_element_by_id("bu1").click()
# 获取对话框
al = driver.switch_to.alert
# 确认对话框
al.accept()
# 触发确认框
driver.find_element_by_id("bu2").click()
# 获取确认框
al = driver.switch_to.alert
# # 确认对话框
# al.accept()
# 取消
al.dismiss()
# 触发提示框
driver.find_element_by_id("bu3").click()
# 获取提示框
al = driver.switch_to.alert
al.send_keys("今天很高兴")
print(al.text)
al.accept()
- 鼠标事件
from selenium.webdriver.common.action_chains import ActionChains
# 定位到需要悬停的元素
ele = driver.find_element_by_css_selector("元素")
# 鼠标悬停操作
ActionChains(driver).move_to_element(ele).perform()
# 右键点击
ActionChains(driver).context_click(ele).perform()
# 左键单击
ActionChains(driver).click(ele).perform()
# 双击
ActionChains(driver).double_click(ele).perform()
# 鼠标拖拽, 把 ele1 拖到 ele2上,ele1和ele2都是元素对象
ActionChains(driver).drag_and_drop(ele1, ele2).perform()
- 键盘事件
from selenium.webdriver.common.keys import Keys
# 数入用户名
ele = driver.find_element_by_name("元素")
# 输入内容
ele.send_keys("1234567")
# ctrl a,全选操作
ele.send_keys(Keys.CONTROL, "a")
# ctrl x,剪切操作
ele.send_keys(Keys.CONTROL, "x")
# 退格键
ele.send_keys(Keys.BACK_SPACE)
# 空格键
ele.send_keys(Keys.SPACE)
# esc 键
ele.send_keys(Keys.ESCAPE)
- from内嵌网页
# 定位并操作内嵌网页中的元素,第一件事情,就是要找到这个内嵌网页
ifr = driver.find_element_by_css_selector("元素)
# 然后再切换进去
driver.switch_to.frame(ifr)
# 切换进去之后,就能找到在内嵌网页中的原苏联
driver.find_element_by_css_selector("元素").send_keys("12345678")
# 回到外层
driver.switch_to.default_content()
- 多标签页
# 点击opms手册
driver.find_element_by_link_text("OPMS手册").click()
# 获取当前所有打开的标签页的句柄
allHandles = driver.window_handles
# 句柄: 操作系统中的唯一资源标识符,身份证
for handles in allHandles:
driver.switch_to.window(handles)
if driver.title == "OPMS文档 - 项目管理软件+OA管理软件+CRM管理软件":
break
h1Text = driver.find_element_by_css_selector("#top + div h1").text
print(h1Text)
嗨~今天你暴躁了吗?
~~~关注我,更多精彩内容带给你,关注私聊带走绝密知识~~~