selenium元素获取

python 复制代码
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

driver.maximize_window()#最大化窗口
#隐式等待
driver.implicitly_wait(10)

#打开网页
driver.get("https://www.zhipin.com/beijing/?ka=city-sites-101010100")

#定位到搜索框,然后输入内容
# driver.find_element(By.CSS_SELECTOR,'input[name="query"]').send_keys("测试工程师")
driver.find_element(By.CSS_SELECTOR,'.ipt-search').send_keys("测试工程师")

driver.find_element(By.XPATH, '//*[@id="wrap"]/div[3]/div/div[1]/div[1]/form/button').click()


"""
id
如果某个元素的有id属性,那么如果id属性的值唯一,则可以利用该属性的值定位
如果id属性的值是一串无序的字母或者数字,则不能使用,有可能是动态id
driver.find_element(By.ID,"id属性的值")


name
根据name的属性值来定位,但是如果name属性的值在当前页面不唯一,则是无法定位的
driver.find_element(By.NAME,"name值")

class name
class 属性的值,不唯一的可能性很大
driver.find_element(By.CLASS_NAME,'btn btn-search')

tag name(通过标签名本身选择,一般无法使用,不推荐)
driver.find_element(By.TAG_NAME,"标签名")

link text(一般不要使用)

partial link text(一般不要使用)

xpath

CSS_SELECTOR
例如driver.find_element(By.CSS_SELECTOR,'input[name="query"]')
根据<input name="query">而来
driver.find_element(By.CSS_SELECTOR,'.ipt-search')根据<input class='ipt-search'>而来
"""

补充知识:

复制代码
1. CSS_SELECTOR 定位
CSS Selector 是一种通过 CSS 样式规则来选取 HTML 元素的方法。它基于元素的标签、类名、ID、属性等来进行定位。

常见的 CSS_SELECTOR 语法:
tag:选择标签名的元素,例如 div。
.class_name:选择具有指定类名的元素。
#id:选择具有指定 ID 的元素。
[attribute=value]:选择具有特定属性值的元素。
示例:使用 CSS_SELECTOR 定位
假设我们有以下 HTML 代码:
html 复制代码
<div id="container">
    <button class="btn" id="submitBtn">Submit</button>
    <a href="https://example.com" class="link">Click Me</a>
</div>

使用 CSS_SELECTOR 定位按钮(button 标签,id="submitBtn"):

python 复制代码
from selenium import webdriver
from selenium.webdriver.common.by import By

# 启动浏览器
driver = webdriver.Chrome()

# 打开网页
driver.get('https://example.com')

# 通过 CSS_SELECTOR 定位按钮
button = driver.find_element(By.CSS_SELECTOR, '#submitBtn')
button.click()  # 点击按钮

# 关闭浏览器
driver.quit()

使用 CSS_SELECTOR 定位链接(a 标签,class="link"):

python 复制代码
link = driver.find_element(By.CSS_SELECTOR, 'a.link')
link.click()  # 点击链接
复制代码
常见的 CSS_SELECTOR 示例:
通过类名:div.class_name
通过 ID:#element_id
通过属性:input[type="text"]
通过后代选择器:div > button(选择 div 中的 button 元素)
通过伪类:button:hover(选择被悬浮的按钮)

2. XPath 定位
XPath 是一种在 XML 文档中查找信息的语言,也可以用来定位 HTML 元素。它允许通过元素的路径、标签、属性、文本等来精确查找元素。

常见的 XPath 语法:
/tag:选择根元素下的 tag 元素。
//tag:选择页面中所有的 tag 元素。
//tag[@attribute='value']:选择具有指定属性的 tag 元素。
//*[text()='text_value']:根据元素的文本内容查找。
//tag[contains(@attribute, 'value')]:根据属性包含的值进行匹配。
示例:使用 XPath 定位
假设我们有以下 HTML 代码:
html 复制代码
<div id="container">
    <button class="btn" id="submitBtn">Submit</button>
    <a href="https://example.com" class="link">Click Me</a>
</div>

使用 XPath 定位按钮(button 标签,id="submitBtn"):

python 复制代码
button = driver.find_element(By.XPATH, '//*[@id="submitBtn"]')
button.click()  # 点击按钮

使用 XPath 定位链接(a 标签,class="link"):

python 复制代码
link = driver.find_element(By.XPATH, "//a[@class='link']")
link.click()  # 点击链接
复制代码
常见的 XPath 示例:
通过元素 ID://*[@id='element_id']
通过类名://*[contains(@class, 'class_name')]
通过文本://*[text()='Click Me']
通过属性://input[@type='text']
使用 contains://*[contains(@href, 'example')](查找包含特定文本的链接)
相关推荐
大霸王龙15 分钟前
Selenium中`driver.get(htmlfile)`方法可能出现的超时问题
selenium·测试工具
#岩王爷16 小时前
自动化测试——selenium
python·selenium·测试工具
穿山甲yyds18 小时前
【python】针对Selenium中弹框信息无法定位的问题,以下是综合解决方案及注意事项:
开发语言·python·selenium
程序员三藏1 天前
Selenium三大等待
自动化测试·软件测试·数据库·python·selenium·测试工具·测试用例
HANG_WORLD3 天前
接口(interface) 测试
学习·selenium·测试工具
Peter_chq3 天前
selenium快速入门
linux·开发语言·chrome·python·selenium
suimeng63 天前
Java的Selenium的特殊元素操作与定位之验证码
selenium·测试工具
码农老何6 天前
Selenium自动化:玩转浏览器,搞定动态页面爬取
selenium·microsoft·自动化
若愚致远6 天前
selenium 常用方法
selenium