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

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