Selenium基本方法使用和八大元素定位

tech2022-10-23  102

一、Selenium 的基本方法使用
from selenium import webdriver import time # 初始化浏览器 browser = webdriver.Chrome() browser.get("http://www.baidu.com") # 回退 browser.back() # 前进 browser.forward() # 刷新 browser.refresh() # 获取当前浏览器的url print(browser.current_url) # 获取title print(browser.title) # 获取访问地址的源代码 print(browser.page_source) # 获取所有窗口的所有标签页 print(browser.window_handles) # 获取现在正处于的标签页,窗口的ID print(browser.current_window_handle)
二、selenium 元素定位
1. 根据ID属性进行定位,查询到的是一个WebElement对象(find_element_by_id)
好处:id 是唯一的

# 导入selenium from selenium import webdriver import time # 启动浏览器 driver = webdriver.Chrome(executable_path=r"F:\python\chromedriver.exe") # 打开百度网址 driver.get("http://www.baidu.com") # id 定位 input输入框 web01 = driver.find_element_by_id("kw") # 输入 天气预报 web01.send_keys("天气预报") # 等到 3秒 time.sleep(3) # 退出 driver.quit()

2. 根据class属性进行定位(find_element_by_class_name)

注意:不能有空格

from selenium import webdriver import time # 启动浏览器 driver = webdriver.Chrome(executable_path=r"F:\python\chromedriver.exe") # 打开百度网址 driver.get("http://www.baidu.com") # class_name 定位 input输入框 web01 = driver.find_element_by_class_name("s_ipt") # 输入 天气预报 web01.send_keys("中国") # 等到 3秒 time.sleep(3) # 退出 driver.quit()
3. 根据name属性进行定位(find_element_by_name)
from selenium import webdriver import time # 启动浏览器 driver = webdriver.Chrome(executable_path=r"F:\python\chromedriver.exe") # 打开百度网址 driver.get("http://www.baidu.com") # name 定位 input输入框 web01 = driver.find_element_by_name("wd") # 输入 天气预报 web01.send_keys("美国") # 等到 3秒 time.sleep(3) # 退出 driver.quit()
4. 通过tagname(标签名称)进行定位。查找到的元素不具备唯一性(find_elements_by_tag_name)
```python from selenium import webdriver import time # 启动浏览器 driver = webdriver.Chrome(executable_path=r"F:\python\chromedriver.exe") # 打开百度网址 driver.get("http://www.baidu.com") # 使用tag_name we04 = browser.find_elements_by_tag_name("input") print(we04[2])

5. 定位a标签超链接(find_element_by_link_text)
from selenium import webdriver # 启动浏览器 driver = webdriver.Chrome(executable_path=r"F:\python\chromedriver.exe") # 打开百度网址 driver.get("http://www.baidu.com") # 使用find_element_by_link_text web01 = driver.find_element_by_link_text("地图") web01.click()
6. 定位a标签超链接,模糊定位(find_elements_by_partial_link_text)
from selenium import webdriver # 启动浏览器 driver = webdriver.Chrome(executable_path=r"F:\python\chromedriver.exe") # 打开百度网址 driver.get("http://www.baidu.com") we04 = driver.find_element_by_partial_link_text("新") we04.click()
7. 通过xpath定位元素
from selenium import webdriver driver = webdriver.Chrome() driver.get('http://www.baidu.com') # 使用xpath 定位 id # web01 = driver.find_element_by_xpath("//input[@id='kw']") # web01.send_keys("软件测试") # 使用xpath 定位 name # web01 = driver.find_element_by_xpath("//input[@name='wd']") # web01.send_keys("开发") # 使用 xpath 定位 class # web03 = driver.find_element_by_xpath("//input[@class='s_ipt']") # web03.send_keys("java") # 使用 web04 = driver.find_element_by_xpath("//*[@id='kw']") web04.send_keys("python")
8. 通过css 定位元素
from selenium import webdriver driver = webdriver.Chrome() driver.get('http://www.baidu.com') ''' # 代表 id ''' # web02 = driver.find_element_by_css_selector("input#kw") # web02.send_keys("好好学习") ''' . 代表 class ''' web02 = driver.find_element_by_css_selector("input.s_ipt") web02.send_keys("天天向上")
三、find_element_by...和find_elements_by...的区别
find_elelment_by...如果找到多个元素,只会返回 WebElement 对象find_elements_by...不管找到多少个,都会放回一个list from selenium import webdriver # 启动浏览器 driver = webdriver.Chrome(executable_path=r"F:\python\chromedriver.exe") # 打开百度网址 driver.get("http://www.baidu.com") web01 = driver.find_elements_by_tag_name("input") print(type(web01)) web02 = driver.find_element_by_tag_name("input") print(type(web02)) ''' <class 'list'> <class 'selenium.webdriver.remote.webelement.WebElement'> Process finished with exit code 0 '''
最新回复(0)