1、获取元素的方法
1、通过id获取
python
element = wd.find_element(By.ID,"id")
2、通过classname获取
python
elements = wd.find_elements_by_class_name("plant")
for element in elements:
print(element.text)
3、通过tagname获取元素
python
elements = wd.find_elements_by_tag_name("span")
for element in elements:
print(element.text)
find_element 和 find_elements 的区别
使用
find_elements
选择的是符合条件的所有
元素, 如果没有符合条件的元素,返回空列表
使用
find_element
选择的是符合条件的第一个
元素, 如果没有符合条件的元素,抛出 NoSuchElementException 异常
4、通过WebElement对象选择元素
WebDriver 对象选择元素的范围是整个web页面,而WebElement对象选择元素的范围是该元素的内部。
python
element = wd.find_element(By.ID,"container")
elements = element.find_elements(By.TAG_NAME,"span")
等待元素出现:wd.implicitly_wait(10)
pythonfrom selenium import webdriver from selenium.webdriver.common.by import By wd = webdriver.Chrome() #控制器 wd.implicitly_wait(10) # 等待元素出现 wd.get("https://www.byhy.net/_files/stock1.html") insert_element = wd.find_element(By.ID,"kw") #搜索框 insert_element.send_keys("四川") #在搜索框中输入元素 submit_element = wd.find_element(By.ID,"go") # 查询按钮 submit_element.click() #点击查询 element = wd.find_element(By.ID,"1") #在查询结果中查找id为1的元素 print(element.text)
2、操控元素的方法
1、输入操作
python
element.clear() # 清除输入框中的元素
element.send_keys()
2、获取文本信息
python
print(element.text)
3、点击操作
python
element.click()
4、获取元素属性
python
element = wd.find_element(By.ID, 'input_name')
print(element.get_attribute('placeholder'))
5、获取整个元素对应的HTML
python
要获取整个元素对应的HTML文本内容,可以使用 element.get_attribute('outerHTML')
如果只是想获取某个元素内部的HTML文本内容,可以使用 element.get_attribute('innerHTML')
6、获取输入框里面的文字
python
element.get_attribute('value')
7、获取元素文本内容2
通过WebElement对象的 text
属性,可以获取元素 展示在界面上的
文本内容。
但是,有时候,元素的文本内容没有展示在界面上,或者没有完全完全展示在界面上。 这时用WebElement对象的text属性,获取文本内容,就会有问题。
出现这种情况,可以尝试使用 element.get_attribute('innerText')
,或者 element.get_attribute('textContent')
使用 innerText 和 textContent 的区别是,前者只显示元素可见文本内容,后者显示所有内容(包括display属性为none的部分)