当通过selenium定位到一个具体的元素后,可以获取该元素的许多详细信息,比如该元素的css样式、标签名、文本以及获取该元素的子元素等等。
element.is_displayed()
此方法用于检查连接的元素是否正确显示在网页上。返回一个布尔值,如果连接的元素显示在当前的浏览器上下文中,则为True;否则返回False。
>>> from selenium import webdriver
>>> from selenium.common import By
>>> driver = webdriver.Chrome()
>>> driver.get("https://www.example.com")
>>> element = driver.find_element(By.TAG_NAME, "p")
# 判断该元素是否显示
>>> element.is_displayed()
True
element.is_selected()
此方法确定是否已选择引用的元素。此方法广泛用于复选框、单选按钮、输入元素和选项元素。返回一个布尔值,如果在当前浏览上下文中 已选择 引用的元素,则返回 True,否则返回 False。
element.get_attribute(name)
用于获取元素的属性值。比如name属性、id属性、class属性、href属性等等。
>>> from selenium import webdriver
>>> from selenium.common import By
>>> driver = webdriver.Chrome()
>>> driver.get("https://www.example.com")
>>> element = driver.find_elements(By.TAG_NAME, "p")[1]
>>> element = element.find_element(By.TAG_NAME, "a")
# 获取href属性
>>> element.get_attribute("href")
'https://www.iana.org/domains/example'
element.tag_name
此方法用于获取在当前浏览上下文中 具有焦点的被引用元素的标签名。
>>> from selenium import webdriver
>>> from selenium.common import By
>>> driver = webdriver.Chrome()
>>> driver.get("https://www.example.com")
>>> element = driver.find_element(By.TAG_NAME, "p")
# 获取标签名
>>> element.tag_name
'p'
element.text
获取特定元素渲染后的文本。
>>> from selenium import webdriver
>>> from selenium.common import By
>>> driver = webdriver.Chrome()
>>> driver.get("https://www.example.com")
>>> element = driver.find_element(By.TAG_NAME, "p")
# 获取元素文本
>>> element.text
'This domain is for use in illustrative examples in documents. You may use this domain in literature without prior coordination or asking for permission.'
element.value_of_css_property(property_name)
获取当前浏览上下文中元素的特定计算样式属性的值。
>>> from selenium import webdriver
>>> from selenium.common import By
>>> driver = webdriver.Chrome()
>>> driver.get("https://www.example.com")
>>> element = driver.find_element(By.TAG_NAME, "p")
# 获取元素的文字颜色
>>> element.value_of_css_property("color")
'rgba(0, 0, 0, 1)'
element.rect
用于获取参考元素的尺寸和坐标。提取的数据主体包含元素左上角的X轴位置、元素左上角的y轴位置、元素的高度、元素宽度。
>>> from selenium import webdriver
>>> from selenium.common import By
>>> driver = webdriver.Chrome()
>>> driver.get("https://www.example.com")
>>> element = driver.find_element(By.TAG_NAME, "p")
# 获取元素的矩形坐标
>>> element.rect
{'height': 60, 'width': 418, 'x': 32, 'y': 115.67500305175781}
element.find_element()
用于在父元素的上下文中查找匹配的子元素(WebElement)。
>>> from selenium import webdriver
>>> from selenium.common import By
>>> driver = webdriver.Chrome()
>>> driver.get("https://www.example.com")
>>> element = driver.find_elements(By.TAG_NAME, "p")[1]
# 获取元素的子元素
>>> element = element.find_element(By.TAG_NAME, "a")
>>> element.text
'More information...'