当前位置:首页 > Web开发 > 正文

百度首页的搜索框结构如下图: # coding:utf-8‘‘‘@author:州的先生@site:zmister.c

2024-03-31 Web开发

使用Selenium进行自动化操纵,首先要做的就是通过webdriver的get()要领打开一个URL链接。

在打开链接,完成页面加载之后,就可以通过Selenium供给的接口,在页面长进行各类操纵了,下面我们来了解一下如安在查找元素。

3.1 查找和定位网页元素

在上一篇的示例中,我们就演示了如何通过find_element_by_id()要领,按照元素的id值来定位页面元素。

除了按照元素的id值来查找元素外,Selenium还供给了很多查找元素的要领:

从上图中可以看到,Selenium供给了近二十个find_element族的要领来供我们在页面中查找元素,此中包孕id、name、类名、css选择器、链接文本、标签名、xpath等。

定位单个匹配元素的要领有:

find_element_by_id

find_element_by_name

find_element_by_xpath

find_element_by_link_text

find_element_by_partial_link_text

find_element_by_tag_name

find_element_by_class_name

find_element_by_css_selector

定位多个匹配元素的要领有:

find_elements_by_name

find_elements_by_xpath

find_elements_by_link_text

find_elements_by_partial_link_text

find_elements_by_tag_name

find_elements_by_class_name

find_elements_by_css_selector

我们可以按照差别页面的差别情况来查找定位到我们所需要的页面元素。

3.2 通过id属性进行定位

如果你知道元素的id属性值,那么可以使用find_element_by_id()要领来定位元素,其将返回id属性值与该位置匹配的第一个元素。

百度首页的搜索框布局如下图:

# coding:utf-8 ‘‘‘ @author:州的先生 @site:zmister.com @微信公家号:州的先生 ‘‘‘ from selenium import webdriver driver = webdriver.Chrome(executable_path=r"D:\chromedriver_win32\chromedriver.exe") driver.get(‘‘) ele = driver.find_element_by_id(‘haha‘) print(ele)

ele返回的是一个对应的element元素:

如果没有元素匹配传入的id值,将会抛出一个NoSuchElementException异常:

# coding:utf-8 ‘‘‘ @author:州的先生 @site:zmister.com @微信公家号:州的先生 ‘‘‘ from selenium import webdriver driver = webdriver.Chrome(executable_path=r"D:\chromedriver_win32\chromedriver.exe") driver.get(‘‘) ele = driver.find_element_by_id(‘haha‘) print(ele)

运行代码,因为没有匹配的id值,所以抛出了异常:

3.3通过name属性进行定位

如果你知道元素的name属性值,那么可以使用find_element_by_name()要领获取第一个匹配name属性值的元素:

# coding:utf-8 ‘‘‘ @author:州的先生 @site:zmister.com @微信公家号:州的先生 ‘‘‘ from selenium import webdriver driver = webdriver.Chrome(executable_path=r"D:\chromedriver_win32\chromedriver.exe") driver.get(‘‘) ele = driver.find_element_by_name(‘wd‘) print(ele)

ele返回匹配到的element元素:

C:\Python35\python.exe E:/pythonproject/selenium_env/code/2.py <selenium.webdriver.remote.webelement.WebElement (session="23d00cea9ce99d36ffcac96cfb3ca12c", element="0.7355927465563321-1")>

如果定位一个没有的name属性值,那么也会抛出NoSuchElementException异常:

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/32402.html