selenium工具之元素定位方法find

selenium工具之元素定位方法find

前言

selenium是一款十分强大的Web应用自动化框架,我们可以通过它来自动操控浏览器。操控浏览器的实质是操控浏览器的界面元素,因此定位元素是使用selenium的关键,selenium中通过 find_element() 方法来完成定位。

用法

1、通过webdriver对象的 find_element(by="属性名", value="属性值") 方法

源码如下:

实例如下:

from selenium import webdriver

from selenium.webdriver.common.by import By

caps = {

'browserName': 'chrome',

'loggingPrefs': {

'browser': 'ALL',

'driver': 'ALL',

'performance': 'ALL',

},

'goog:chromeOptions': {

'perfLoggingPrefs': {

'enableNetwork': True,

},

'w3c': False,

},

}

driver = webdriver.Chrome(desired_capabilities=caps, executable_path='/home/test/MyCode/Common/driver/chromedriver_102')

driver.get('https://www.baidu.com')

driver.find_element(by=By.ID, value='kw')

driver.find_element(by='id', value='kw')

注意:

By 是一个集成属性名变量的类(通过类名.变量名来调用),如下:

2、通过webdriver对象的 find_element_by_xx(xx=xx) 方法(在selenium的4.0版本中此种用法已经抛弃,不推荐使用)

注意:但是可能因为项目需求或者浏览器版本需求可能在工作中使用到的还是较低版本的selenium,如下图:

selenium工具中有以下定位方式:

driver.find_element_by_id('id')

driver.find_element_by_xpath('xpath')

driver.find_element_by_link_text('link_text')

driver.find_element_by_partial_link_text('partial_link_text')

driver.find_element_by_name('name')

driver.find_element_by_tag_name('tag_name')

driver.find_element_by_class_name('class_name')

driver.find_element_by_css_selector('css_selector')

通过以上元素定位的源码,可以看出上面的方法实际上调用的依旧是 driver.find_element(by, value)

3、 find_element(by=By.xx, value='xxx') && find_elements(by=By.xx, value='xxx') 的区别

① find_element() 的返回结果是一个WebElement对象,如果符合条件的有多个,默认返回找到的第一个,如果没有找到则抛出NoSuchElementException异常。

② find_elements() 的返回结果是一个包含所有符合条件的WebElement对象的列表,如果未找到,则返回一个空列表。

相关推荐

斯蒂卡碳素45和碳素145底板性能试打比较评测:真实的“45”
探寻健康之道:七本必读的养生书籍推荐
365娱乐场投注

探寻健康之道:七本必读的养生书籍推荐

📅 07-12 👁️ 5960
《荒野行动》跑车怎么抽 抽跑车方法
365娱乐场投注

《荒野行动》跑车怎么抽 抽跑车方法

📅 07-16 👁️ 6021
闪电、静电、直流电、交流电有什么区别?
天天365彩票软件官方下载3D

闪电、静电、直流电、交流电有什么区别?

📅 07-05 👁️ 282
分析对比罗技G913tkl和海盗船k70有什么区别?价格哪个好更划算?
秋名山车神是什么意思什么梗?从不翻车的“老司机”称为秋名山车神