🌟欢迎来到 我的博客 —— 探索技术的无限可能!
🌟博客的简介(文章目录)
1.自动化测试环境搭建
? (补充)浏览器驱动的安装 以及 如何更新driver
2.页面元素定位
3.时间等待
4.浏览器操作
5.鼠标键盘操作
6.多层窗口定位
7.警告框处理
8.Cookie 处理
9.expected_conditions
10.Python 的 unittest 框架
11.HTMLTestRunner 生成测试报告
? ?? ?在浏览器中,通常会用到鼠标来进行操作,比如右键菜单中选择一个操作,在 selenium 中提供了下列鼠标相关操作。
? ?? ?ActionChains 类提供了以下方法:
- 点击鼠标:click()
- 右击鼠标:context_click()
- 双击鼠标:double_
click() - 拖拽元素:drag_and_drop()
- 长按鼠标:click_and_hold()
- 移动鼠标到元素上:move_to_element()
- 右击鼠标:context_click()
- 模拟键盘上下键滚动:send_keys(Keys.PAGE_DOWN) 或 send_keys(Keys.PAGE_UP)
- 模拟鼠标滚轮滚动:execute_script(“window.scrollTo(0, document.body.scrollHeight);”)
? ?? ?context_click()是Selenium库中的一个方法,它可以模拟鼠标右键点击操作。在浏览器中,右键点击会弹出一个菜单,该菜单显示了可用于该元素的所有操作。context_click()方法可用于执行此操作并选择要执行的操作。
? ?? ?模拟用户在 LMD 登陆界面,在输入邮箱地址的输入框右键,但是这里本身没有定义右键,所以不能打开右键,而无法操作右键,如果在项目中有用到,那右键后的菜单也可以进行定位,并操作。示例:
注意事项:
- context_click()方法需要使用ActionChains类,需要先导入该类:from selenium.webdriver.common.action_chains import ActionChains
- 在右键点击后选择操作时,可以使用send_keys()方法模拟键盘按键操作。在这里,我们使用Keys类,该类提供了一些常用键的常量,例如:Keys.CONTROL表示Ctrl键。
? ?? ?double_click()是一个鼠标事件函数,它会在鼠标双击时被触发。双击事件是指用户快速连续点击鼠标左键两次,一般用于实现某些特殊操作或者进行快速编辑等操作。在双击事件中,第一次单击会触发单击事件,第二次单击会触发双击事件。
? ?? ?在double_click()函数中,可以定义一些动作和操作,例如打开一个新窗口、删除一条记录、选择一个项等。它主要被用于图形用户界面(GUI)中,如各种框架和库中的图形库,如Tkinter、Qt、wxWidgets等。因为在GUI中,鼠标双击事件是一种非常常见的用户操作。
? ?? ?在一些 web 页面中,一些菜单需要将鼠标放上去,才会显示它的子菜单,在这种情况下,自动化需要模拟人为将鼠标放到菜单上。
? ?? ?move_to_element()方法是Selenium中模拟鼠标拖放操作的一种方法。它可以将鼠标鼠标双击测试指针移动到指定的元素上,然后按住鼠标左键拖动该元素到目标位置。
? ?? ?下面通过百度页面来实现这个操作,在百度页面中,要对搜素的设置进行设置, 这种操作需要将鼠标放到页面的设置菜单中,才能看到搜索设置,才能进行下一步的
操作。代码如下:
注意事项:
- move_to_element()方法需要使用ActionChains类,需要先导入该类:from selenium.webdriver.common.action_chains import ActionChains
- 在移动到源元素和目标元素时,可以使用find_element_by_xpath()方法或其他定位方法来定位元素。
- click_and_hold()方法按下鼠标左键不释放,直到使用release()方法释放鼠标左键。
? ?? ?使用键盘时,需要导入 selenium.webdriver.common.keys 中的 Keys 模块。
? ?? ?send_keys() 方法是Selenium WebDriver 中用于模拟输入的一种方法。它可以向指定的元素或当前活动的元素发送键盘输入,如文本、特殊字符、组合键等。
? ?? ?下面代码模拟用户通过键盘向邮箱地址中输入一个数字。
? ?? ?下面模拟操作 tab 键和 enter 键
? ?? ?通过上面的代码能够看出,输入邮箱和密码之后,按下 tab 键,操作会切换到登陆按钮上,然后在登陆按钮上模拟用户按下 enter 键。
? ?? ?当然这样的操作需要按业务的顺序来的,否则会出错。
注意事项:
- send_keys() 方法需要使用 WebElement 对象,需要先通过元素定位方法(如 find_element_by_xpath())获取该元素的 WebElement 对象。
- send_keys() 方法可以一次性输入多个字符,使用逗号分隔,如 send_keys(“123”, “,”, “abc”) 将输入 “123,abc”。
- send_keys() 方法还可以模拟各种键盘操作,如输入特殊字符、组合键等,具体可以参考 Selenium 官方文档或相关教程。
? ?? ?在 web 页面使用键盘除了上面的操作之外,还可能会有其他操作,比如组合键。
? ?? ?接下来,通过代码模拟用户在界面输入邮箱地址之后,使用 ctrl+a 的方式,将其全选, 然后在使用 ctrl+c 的方式将内容复制出来,登陆成功后,将复制的内容粘贴到创意列表的标题中。代码如下: