首页 > 编程 > Python > 正文

Python2 Selenium元素定位的实现(8种)

2020-02-16 01:21:56
字体:
来源:转载
供稿:网友

当我们想让 Selenium 自动地操作浏览器时,就必须告诉 Selenium 如何去定位某个元素或一组元素,每个元素都有着不同的标签名和属性值,Selenium 提供了以下8种定位元素的方式,每种方式对应了2个方法:
find_element_by_( ),是用来定位单个元素的,find_elements_by_( ),是用来定位多个元素的。

通过 id 定位 通过 name 定位 通过 class 定位 通过 tag 定位 通过 link 定位 通过 partial link 定位 通过 xpath 定位 通过 css 选择器定位

下面以百度首页为例进行举例说明:

1.通过 id 定位

find_element_by_id(id)
find_elements_by_id(id)

# _*_ coding:utf-8 _*_from selenium import webdriverdriver = webdriver.Chrome() driver.maximize_window()   driver.get("https://www.baidu.com/") # 定位id为“kw”的元素input_text = driver.find_element_by_id("kw")input_text.send_keys("selenium")driver.quit()

2.通过通过 name 定位

find_element_by_name(name)
find_elements_by_name(name)

# _*_ coding:utf-8 _*_from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window()   driver.get("https://www.baidu.com/") # 定位name为“wd”的元素input_text = driver.find_element_by_name("wd")input_text.send_keys("selenium")driver.quit()

3.通过 class 定位

find_element_by_class_name(name)
find_elements_by_class_name(name)

# _*_ coding:utf-8 _*_from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window()   driver.get("https://www.baidu.com/") # 定位class名称为“s_ipt”的元素input_text = driver.find_element_by_class_name("s_ipt")input_text.send_keys("selenium")driver.quit()

4.通过 tag 定位

find_element_by_tag_name(name)
find_elements_by_tag_name(name)

# _*_ coding:utf-8 _*_from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window()   driver.get("https://www.baidu.com/") # 定位标签为<input>的元素input_text = driver.find_elements_by_tag_name("input")print(len(input_text))driver.quit()

5.通过 link 定位

find_element_by_link_text(link_text)
find_elements_by_link_text(link_text)

# _*_ coding:utf-8 _*_from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window()   driver.get("https://www.baidu.com/") # 定位链接文本完全匹配“我新闻”的元素news = driver.find_element_by_link_text("新闻")news.click()driver.quit()

6.通过 partial link 定位

find_element_by_partial_link_text(link_text)
find_elements_by_partial_link_text(link_text)

# _*_ coding:utf-8 _*_from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window()   driver.get("https://www.baidu.com/") # 定位链接文本部分匹配“新”的元素news = driver.find_element_by_partial_link_text("新")news.click()driver.quit()            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表