船長帶你看書——《selenium2 python 自動化測試實戰》(2)瀏覽器操作
瀏覽器操作
# coding: utf-8 from selenium import webdriver from time import sleep driver = webdriver.Firefox() driver.get("https://www.baidu.com") # 設置瀏覽器寬800,高400 driver.set_window_size(800, 400) sleep(3) # 最大化窗口 driver.maximize_window() driver.get("https://www.cnblogs.com/") sleep(3) # 後退到上一個頁面 driver.back() sleep(3) # 前進到下一個頁面 driver.forward() sleep(3) # 退出瀏覽器 driver.quit()
對象定位
webdriver 提供了一系列的元素定位方法,常用的有以下幾種:
-
id
-
name
-
class name
-
tag name
-
link text
-
partial link text
-
xpath
-
css selector
分別對應 python webdriver 中的方法為:
-
find_element_by_id()
-
find_element_by_name()
-
find_element_by_class_name()
-
find_element_by_tag_name()
-
find_element_by_link_text()
-
find_element_by_partial_link_text()
-
find_element_by_xpath()
-
find_element_by_css_selector()
我們還是以blog.hexun.com為例:
這是他的登錄框。摁F12或者鼠標右鍵選擇Inspect in FirePath火狐瀏覽器會彈出查看元素界面:
點一下上圖箭頭所示那裏,然後去頁面上點擊你想定位的元素,比如我們現在要定位輸入賬號框,我們就點一下那個查看元素的圖標,然後點一下輸入賬號的框,就可以看到查看元素的頁面定位到了這裏:
在這裏,頁面元素屬性有id、name等,這是我們定位這個框就可以通過id(find_element_by_id)或者name(find_element_by_name),一般來說name或者class_name,tag_name這些元素名稱都不是唯一的,可能這裏叫div(tag_name)另一個地方也叫div,這裏叫name=”username”,另一個地方name也是username,這時候用name,class_name,tag_name就很難定位到你想要的元素,所以,不用猶豫了,不嫌長的話就用xPath或者css_selector吧,如果有id用id也可以,因為一般來說id肯定是唯一的。
name如何定位xPath或者css_selector呢?那就是查看頁面元素那裏選擇
FirePath那個標簽,上圖已經看到賬號欄的xPath了,只需要點擊XPath後面那個小三角,就可以切換成css(就是css_selector)的定位方式了:
所以呢,以後再定位的時候基本上不用思考,直接用FirePath這個工具就可以了。 -
微信公眾號搜索“自動化測試實戰”或掃描下方二維碼添加關註~~~
船長帶你看書——《selenium2 python 自動化測試實戰》(2)瀏覽器操作