窗口,截屏,警告框,鼠标,键盘,内嵌,多标签等方法

  """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)
posted @ 2021-03-27 23:52  太白之魔童降世  阅读(90)  评论(2编辑  收藏  举报