使用selenium成功定位元素后,会返回 WebElement
类对象的一串描述;实际上, WebElement
提供了属性和方法来获取元素的文本值和属性值(比如文本、图片链接),这样就不必再解析(比如使用BeautifulSoup库解析)源代码来获取信息了,节省很多步骤
部分系列
selenium库的使用(三):定位元素
selenium库的使用(七):隐性等待和显性等待
selenium库的使用(十七):元素状态判断
WebElement属性
获取文本值
获取元素的id
selenium使用的内部ID
这主要用于内部使用,比如检查2个webelements是否指向同一个元素
获取元素的名称
获取元素的宽高
获取可见元素在屏幕左上角的x、y坐标
1
| WebElement.location_once_scrolled_into_view
|
这个属性可能会在没有警告的情况下发生变化
使用这个方法来发现一个元素在屏幕上的位置,以便我们可以点击它
这个方法应该导致元素被滚动到视图中
如果元素不可见,则返回 None
获取元素在可渲染画布中的左上角x、y坐标
获取元素的宽高及x、y坐标
获取元素的父级元素对象
该元素从WebDriver实例的内部引用
实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| import time from selenium import webdriver
driver = webdriver.Chrome() driver.get('https://www.gaoyuanqi.cn/python-html-1/#more')
time.sleep(2)
webelement = driver.find_element_by_class_name('gu_shi')
print(webelement.text) print(webelement.id) print(webelement.tag_name) print(webelement.size) print(webelement.location_once_scrolled_into_view) print(webelement.location) print(webelement.rect) print(webelement.parent)
driver.quit()
|
输出
1 2 3 4 5 6 7 8
| 君问归期未有期 34276191-f028-44ff-86ae-58889dc4d4bf p {'height': 32, 'width': 547} {'x': 362, 'y': 0} {'x': 362, 'y': 304} {'height': 32, 'width': 547, 'x': 362, 'y': 304.40000000596046} <selenium.webdriver.chrome.webdriver.WebDriver (session="af1f325c2a6a33a51aecbc507c8d8596")>
|
WebElement方法
获取元素的属性值
1 2
| WebElement.get_property(name) WebElement.get_attribute(name)
|
如果不存在该名称的属性,则返回同名属性的值;如果没有该名称的属性,则返回 None
name
:属性名称,比如 href
、src
实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| import time from selenium import webdriver
driver = webdriver.Chrome() driver.get('https://www.gaoyuanqi.cn/python-html-1/#more')
time.sleep(2)
webelement_image = driver.find_element_by_class_name('tu_pian')
print(webelement_image.get_property('src'))
webelement_text = driver.find_element_by_class_name('text_url')
print(webelement_text.get_attribute('href'))
driver.quit()
|
输出
1 2
| https://www.gaoyuanqi.cn/images/avatar.png https://www.gaoyuanqi.cn/python-html-1/#more
|