Selenium自动化实践

因为公司的权限设置太过繁琐,现在想使用selenium来进行自动化设置,记录一下Selenium的实践过程。
环境python3.6.5 IDE pycharm
首先安装selenuim

pip3 install selenium

然后我这里使用的是chrome的浏览器,不同的浏览器需要不同的驱动,这里贴出驱动下载地址
http://chromedriver.storage.googleapis.com/index.html
注意不同的版本驱动不一样。
然后我写了一个测试的运行程序

from selenium import webdriver

path=r'C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe'

browser = webdriver.Chrome(path)
browser.get('https://www.baidu.com')

这里把驱动放在了和chrome一个文件夹(可以放在程序的当前文件夹里面),这个程序运行能自动打开百度就ok了。
下面来介绍一些selenium一些基础功能
首先是查找元素
find_element_by_id()
使用id来定位元素的位置,可以使用浏览器选中元素点击检查就可以了。以百度为例,使用chrome右键点击输入框选择检查。
在这里插入图片描述
看到上面的html,我们可以看到输入框的id=“kw”,我们在输入框里面输入一个selenium吧。

from selenium import webdriver

path=r'C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe'

browser = webdriver.Chrome(path)
browser.get('https://www.baidu.com')
browser.find_element_by_id("kw").send_keys("selenium")

在find_element_by这一系列的方法下面都有.send_keys,click()等方法。前者是传值后者是点击。
我们输入了selenium的字段,需要点击一下“百度一下”。我们重复上面操作,发现百度一下这个元素的id=“su”

from selenium import webdriver

path=r'C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe'

browser = webdriver.Chrome(path)
browser.get('https://www.baidu.com')
browser.find_element_by_id("kw").send_keys("selenium")
browser.find_element_by_id("su").click()

find_element_by_name()
和id类似,在网页中有时会有name这个字段,所以我们通过name来确定元素。如下图
在这里插入图片描述

find_element_by_class_name()
通过class_name来定位元素,和前面类似,但是class可能会有很多个都是这个名字,所以一般都没怎么使用。
find_element_by_xpath()
这个是一个很强大的查找单元。如果我想找input中name=“wd”的元素可以使用find_element_by_xpath("//input[@name=‘wd’]"),双斜杠代表全局查找。同样也可以使用find_element_by_xpath("/html/body/div[1]/div[1]/div/div[1]/div/form/span[1]/input")这样的方式去查找。对于一些很难去定位的元素非常好用。
find_element_by_css_selector()
和类名类似,上面class=“s_ipt”,就可以使用find_element_by_css_selector(".s_ipt")定位,如果懂得html就知道这个地方为啥前面是有一个点。
find_element_by_link_text()
定位超链接,通过定位html中的<a>标签超链接的文字。还有一个是find_element_by_partial_link_text()相当于模糊搜索。

切换浏览器标签
可以通过webdriver下的window_handles获取所有的浏览器标签(是一个list),然后通过switch_to.window切换标签。

from selenium import webdriver

path=r'C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe'

browser = webdriver.Chrome(path)
h = browser.window_handles
browser.switch_to.window(h[1])

参考文档:
selenium docs:https://seleniumhq.github.io/selenium/docs/api/py/index.html
https://blog.csdn.net/qq_32897143/article/details/80383502

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章