Selenium -Web控件定位與常見操做

1、Selenium點擊與輸入

driver.find_element_by_id('kw').send_keys('自動化測試')
driver.find_element_by_id('su').click()

#下面用By方法
from selenium.webdriver.common.by import By

find_element(By.ID,'kw').send_keys('自動化測試')
find_element(By.ID,'su').click()

 

2、Xpath定位

XML Path Languagecss

用於解析heml與xml

缺點:速度慢,由於xpath是從頭至尾的一點一點去查找元素。


Xpath 演示python

從節點往下找


直接選取class

/ 和 // 的區別web

/ 只能尋找 class=「live‐list」 下面節點的元素,下面節點元素裏面的元素則沒法找到。

// 能找到子元素裏面的元素。 以下圖:能找到 class=「live‐list」 裏面的 a 標籤和 div 標籤等。

以下圖: //a 能找到裏面全部的帶有 a 標籤的元素, /a 則找不到裏面的帶有 a 標籤的元素。
在這裏插入圖片描述面試

3、Css Selector

Css Selector支持Appium和Selenium。可是Appium原生控件是不支持Css Selector的,只支持Xpath。



Css Selector演示性能

根據id和name來查找學習

寫法: $(’#kw’) 、 $(’[id=kw]’) 和 $(’[name=wd]’)




在這裏插入圖片描述測試

有多個 a 元素該如何找到相對應的想要的元素呢?好比要找到 資訊 的 a 元素。ui

$(’#s_tab a:nth‐child(1)’) 則表示選擇其父元素的第1個子元素的每一個元素。這個不是咱們要找的「資訊」的元素。spa

$(’#s_tab a:nth‐child(2)’) 則表示選擇其父元素的第2個子元素的每一個元素。這個纔是咱們要找的
元素。.net

爲何括號裏是 2 而不是 1 呢。

由於 a 元素的父元素是
而不是

因此咱們要找的「資訊」的 a 元素是

下面的第二個元素,因此括號裏是2: $(’#s_tab a:nth‐child(2)’) 。

在用這個方法的時候要看其父元素是誰,要找的元素在第幾。

若是咱們想找到最後一個元素呢?

使用 $(’#s_tab a:nth‐last‐child(1)’) 或者 $(’[id=s_tab] a:nth‐last‐child(1)’)

加上 -last 表示從最後開始找

頁面中有多個相同的class時

4、selenium中使用XPath和css selector

import time
from selenium import webdriver
from selenium.webdriver.common.by import By

class TestSelector:

    def setup(self):
        self.driver = webdriver.Chrome()
        self.driver.get('https://www.baidu.com')
        self.driver.implicitly_wait(3) #隱式等待3秒

    def teardown(self):
        time.sleep(2)
        self.driver.quit()

    def test_selector(self):
        self.driver.find_element(By.XPATH,'//*[@id="kw"]').send_keys('自動化測試')

 



Css Selector寫法

def test_selector(self):
    self.driver.find_element(By.CSS_SELECTOR,'#kw').send_keys('自動化測試')

 

5、最後

對軟件測試、接口測試、自動化測試、軟件測試零基礎入門、性能測試、LR腳本開發、python自動化全棧、面試經驗感興趣能夠175317069,羣內會有不按期的發放免費的資料連接。若是你有好的學習也資料能夠私聊發我,我會註明出處以後分享給你們。

相關文章
相關標籤/搜索