selenium對元素定位和操作方法的封裝

2022-06-04 04:54:10 字數 2456 閱讀 1163

前面介紹了selenium對元素的定位方法和操作方法,但是因為這些方法用起來重複的次數比較多,所以我們在下面對他們進行乙個封裝

#

-*- coding:utf-8 -*-

from selenium import

webdriver

import

time

class

common(object):

#新建物件就自動建立瀏覽器並且最大化視窗

def__init__

(self):

self.driver=webdriver.chrome()

self.driver.maximize_window()

#開啟網頁功能

defopen(self,url):

self.driver.get(url)

self.driver.implicitly_wait(5)

#關閉網頁功能

defclose(self):

time.sleep(3)

self.driver.close()

#定位元素功能

deflocateelement(self,type,value):

if type=="id"

: el=self.driver.find_element_by_id(value)

elif type=="

name":

el=self.driver.find_element_by_name(value)

elif type=="

class_name":

el=self.driver.find_element_by_class_name(value)

elif type=="

tag_name":

el=self.driver.find_element_by_tag_name(value)

elif type=="

link_text":

el=self.driver.find_element_by_link_text(value)

elif type=="

partial_link_text":

el=self.driver.find_element_by_partial_link_text(value)

elif type=="

xpath":

el=self.driver.find_element_by_xpath(value)

elif type=="

css_selector":

el=self.driver.find_element_by_css_selector(value)

return

el

#點選元素功能

defclick(self,type,value):

#呼叫locateelement定位元素

el=self.locateelement(type,value)

#呼叫click()進行點選操作

el.click()

#對定位到元素進行輸入

definput_data(self, type, value,data):

#呼叫locateelement定位元素

el =self.locateelement(type, value)

#呼叫send_keys進行輸入

el.send_keys(data)

#獲取定位到的元素中的文字內容text

defgettext(self, type, value):

#呼叫locateelement定位元素

el =self.locateelement(type, value)

#返回文字內容

return

el.text

#獲取定位到的元素中的標籤值

defgetattribute(self, type, value,name):

#呼叫locateelement定位元素

el =self.locateelement(type, value)

#返回文字內容

return

el.get_attribute(name)

#刪除物件時自動執行的方法

def__del__

(self):

self.driver.close()

#如果是引用該類則不執行該方法

if__name__=="

__main__":

test=common()

url="

"test.open(url)

test.input_data("id

","kw

","hiro")

test.click("id

","su")

#-*- author: hiro -*-

還封裝了開啟瀏覽器和全屏等方法

Selenium 元素定位

ui自動化中元素的定位是最最基本,但也是最讓人頭痛的地方。控制項的動態載入,屬性的動態生成抑或因為開發的懶而造成控制項的識別問題總是自動化測試的噩夢。webdriver作為主流的網頁測試工具提供了非常豐富的識別控制項的方法。這次在寫自動化庫的時候也遇到各種定位問題,著實抓狂了一陣,但最終都解決了。雖...

selenium元素定位

單數形式 複數形式,返回的是乙個列表 使用範圍 a.元素有id屬性 b.id不是動態的,為固定值 driver.find element by id id屬性值 使用範圍 a.元素有id屬性 b.id不是動態的,為固定值 語法 driver.find element by name name屬性值 ...

selenium元素定位

一,元素定位方式 from selenium import webdriver from selenium.webdriver.support import expected conditions as ec import time driver webdriver.chrome driver.ge...