曲鸟全栈UI自动化教学(四):Selenium工作原理及Webdriver对浏览器的配置和操作_iu自动化的webdriver怎么配置(1)

最后

由于细节内容实在太多了,为了不影响文章的观赏性,只截出了一部分知识点大致的介绍一下,每个小节点里面都有更细化的内容!

小编准备了一份Java进阶学习路线图(Xmind)以及来年金三银四必备的一份《Java面试必备指南》

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

chrome_options.add_argument(‘blink-settings=imagesEnabled=false’)




---


#### 2.6 使用已打开的浏览器


以chrome浏览器举例,我们可以通过【cmd】在chrome所在目录执行命令:



chrome.exe --remote-debugging-port=9222 --user-data-dir=“C:\selenum\AutomationProfile”




---


`-remote-debugging-port`:用于配置浏览器启动占用的端口,可以指定任何未被占用的端口  
 `-user-data-dir`:指定创建新Chrome配置文件的目录;它是为了确保在单独的配置文件中启动chrome,不会污染你的默认配置文件。




---


然后在代码中加入下面的配置即可使用刚刚打开的浏览器了



chrome_options.add_experimental_option(“debuggerAddress”, “127.0.0.1:9222”)




---


**这样做的好处是:**


1. 是一个由chrome启动的浏览器,不容易被所测网站检测出是自动化程序、有利于爬虫的过检测。
2. 基于该运行浏览器所产生的缓存、cookie等数据都会被记录。下次启动的时候不用重新登录帐号,也不用因为没有缓存导致页面加载时间过长。




---


#### 2.7 手动指定浏览器位置


当存在多个谷歌浏览器或谷歌浏览器环境异常时,可以指定其浏览器文件路径进行驱动



chrome_options.binary_location = r"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"




---


#### 2.8 隐藏【受到自动化测试软件的控制】提示


![在这里插入图片描述](https://img-blog.csdnimg.cn/9e78a0bbee1a4bf19a65765f13e5888f.png)




---


通过该配置项可以隐藏上图的提示



chrome_options.add_experimental_option(‘excludeSwitches’, [‘enable-automation’])




---


#### 2.9 指定浏览器大小


下面的代码会启动一个宽`100`,长`1000`的浏览器



chrome_options.add_argument(f’–window-size={100},{1000}')




---


#### 2.10 指定浏览器位置


下面的代码会启动一个左边距为`100`,上边距为`200`的浏览器



chrome_options.add_argument(f’–window-position={100},{200}')




---


#### 2.11 指定浏览器启动语言


有时候开启浏览器需要特别的语言版本,如果未进行配置则启动的是系统语言对应的浏览器,我们的被测网站如果是英文的,但系统是中文的,开启的浏览器就是中文的,提交的某些数据按照`zh_CN.UTF-8`的格式提交了,导致数据报错,那么我们就需要设置浏览器启动语言。



chrome_options.add_argument(‘lang=en-us’)




---


#### 2.12 更换浏览器请求头


有时候需要模拟手机访问某些页面的时候,可以通过配置`user-agent`项来实现  
 下面的代码会将浏览器模拟为安卓手机访问



user_ag = 'MQQBrowser/26 Mozilla/5.0 (Linux; U; Android 7.3.7; zh-cn; MB200 Build/GRJ22;CyanogenMod-7) ’
'AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 ’
chrome_options.add_argument(‘user-agent=%s’ % user_agent)




---


**执行效果**




---


![在这里插入图片描述](https://img-blog.csdnimg.cn/e140f26d71544d3fbe5713e960796b14.png)


#### 2.13 设置浏览器代理



chrome_options.add_argument(‘–proxy-server=你的代理ip地址’)




---


#### 2.14 使用配置


下面的代码会【最大化窗口】且【不加载图片】的启动一个浏览器:



from selenium import webdriver

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument(‘–start-maximized’)
chrome_options.add_argument(‘blink-settings=imagesEnabled=false’)
browser = webdriver.Chrome(options=chrome_options)




---


### 3. Webdriver常用操作


#### 3.1 获取浏览器名称



browser.name




---


#### 3.2 最大化浏览器窗口



browser.maximize_window()




---


#### 3.3 最小化浏览器窗口(Selenium4支持)



browser.minimize_window()




---


#### 3.4 全屏窗口


类似浏览器中按下【F11】



browser.fullscreen_window()




---


#### 3.5 访问指定网址



browser.get(“https://www.baidu.com”) #访问百度




---


#### 3.6 获取当前页url



browser.current_url




---


#### 3.7 获取当前页的title



browser.title




---


#### 3.8 获取当前页窗口句柄



browser.current_window_handle




---


#### 3.9 截屏当前窗口



browser.save_screenshot(‘test.png’) #截取当前窗口并命名为test.png保存




---


#### 3.10 刷新



browser.refresh()




---


#### 3.11 前进(浏览器的【前进】按钮)



browser.forward()




---


#### 3.12 后退(浏览器的【后退】按钮)



browser.back()




---


#### 3.13 设置浏览器大小


设置浏览器宽为`480`,高为`800`



browser.set_window_size(480, 800)




---


#### 3.14 设置浏览器位置


设置浏览器宽为`480`,高为`800`



browser.set_window_position(480, 800)




---


#### 3.15 获取浏览器大小


设置浏览器宽为`480`,高为`800`



browser.get_window_size(480, 800)




---


#### 3.16 获取浏览器位置


设置浏览器宽为`480`,高为`800`



browser.get_window_position(480, 800)




---


#### 3.17 执行js脚本


如果需要进行页面滑动(模拟鼠标滚轮操作)可以通过执行`js`脚本实现  
 例如滑动到`'//*[@id="asideHotArticle"]/h3'`元素:



target = browser.find_element(By.XPATH, ‘//*[@id=“asideHotArticle”]/h3’)
browser.execute_script(“arguments[0].scrollIntoView();”, target)




---


#### 3.18 切换窗口


有多个窗口时,可以通过下面的方法进行切换才能够顺利的进行定位



browser.switch_to.window(browser.window_handles[1])




---


#### 3.19 切换iframe


页面中的iframe弹窗,需要使用下面的代码切换才能够顺利的进行定位



最后

各位读者,由于本篇幅度过长,为了避免影响阅读体验,下面我就大概概括了整理了

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

``


3.19 切换iframe

页面中的iframe弹窗,需要使用下面的代码切换才能够顺利的进行定位



# 最后

各位读者,由于本篇幅度过长,为了避免影响阅读体验,下面我就大概概括了整理了

[外链图片转存中...(img-2oz4G8wA-1715548478646)]

[外链图片转存中...(img-CWmyE2P4-1715548478647)]

[外链图片转存中...(img-ZgQMVUvf-1715548478648)]

[外链图片转存中...(img-AKse0n1W-1715548478648)]

> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**

**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**

  • 13
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值