selenium UI使用小技巧集合
在WebDriver中处理JavaScript所生成的alert、confirm以及prompt十分简单,具体做法是使用 switch_to.alert 方法定位到 alert/confirm/prompt,然后使用text/accept/dismiss/ send_keys等方法进行操作。Keys()类提供了键盘上几乎所有按键的方法。前面了解到, send_keys()方法可以用来模拟键盘输入,
01 窗口截图
webdriver 提供了 get_screenshot_as_file()函数来截取当前窗口

02 警告框处理
在WebDriver中处理JavaScript所生成的alert、confirm以及prompt十分简单,具体做法是使用 switch_to.alert 方法定位到 alert/confirm/prompt,然后使用text/accept/dismiss/ send_keys等方法进行操作
●text:返回 alert/confirm/prompt 中的文字信息
●accept():接受现有警告框
●dismiss():取消现有警告框
●send_keys(“haha”):发送文本至警告框

03 鼠标事件
用selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击、双击、点击鼠标右键、拖拽等等。而selenium给我们提供了一个类来处理这类事件——ActionChains
ActionChains 类提供了鼠标操作的常用方法:
●perform():执行操作
●context_click():右击;
●double_click():双击;
●drag_and_drop():拖动;
●move_to_element():鼠标悬停。

04 键盘事件
Keys()类提供了键盘上几乎所有按键的方法。前面了解到, send_keys()方法可以用来模拟键盘输入, 除此 之外, 我们还可以用它来输入键盘上的按键, 甚至是组合键, 如 Ctrl+A、 Ctrl+C 等

以下为常用的键盘操作:
●send_keys(Keys.BACK_SPACE) 删除键(BackSpace)
●send_keys(Keys.SPACE) 空格键(Space)
●send_keys(Keys.TAB) 制表键(Tab)
●send_keys(Keys.ESCAPE) 回退键(Esc)
●send_keys(Keys.ENTER) 回车键(Enter)
●send_keys(Keys.CONTROL,'a') 全选(Ctrl+A)
●send_keys(Keys.CONTROL,'c') 复制(Ctrl+C)
●send_keys(Keys.CONTROL,'x') 剪切(Ctrl+X)
●send_keys(Keys.CONTROL,'v') 粘贴(Ctrl+V)
●send_keys(Keys.F1) 键盘 F1
……
●send_keys(Keys.F12) 键盘 F12
05 iframe切换
iframe,又叫浮动帧标记,是内嵌的网页元素,可以将一个html文件嵌入到另一个html文件中显示
对iframe进行操作,需要用到以下三种方法:
●switch_to_iframe()
切换到iframe上(未来会被删除,不建议使用)
●switch_to.frame()
切换到iframe上
●switch_to.default_content()
切换回原主页面
通过如下方式进行切换操作
#定位到iframe
iframe=driver.find_element_by_id("x-URS-iframe")
#切换到iframe
driver.switch_to_frame(iframe)

06 多标签页切换
在页面操作过程中有时候点击某个链接会弹出新的窗口,这时就需要切换到新打开的窗口上进行操作。WebDriver提供了以下方法
current_window_handle:获得当前标签页句柄
window_handles:返回所有便签页的句柄
switch_to.window(标签页句柄):切换到对应的标签页
关闭标签页使用 close 方法

07 补充
#将页面滚动条拖到底部
js="var q=document.documentElement.scrollTop=100000"
driver.execute_script(js)
time.sleep(3)
#将滚动条移动到页面的顶部
js="var q=document.documentElement.scrollTop=0"
driver.execute_script(js)
time.sleep(3)
#将页面滚动条移动到页面任意位置,改变等于号后的数值即可
js="var q=document.documentElement.scrollTop=50"
driver.execute_script(js)
感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)