selenium.webdriver.remote.webelement
1. class selenium.webdriver.remote.webelement.WebElement(parent, id_, w3c=False)
表示 DOM 元素。
通常,与页面交互的所有操作都将通过此接口执行。
所有方法调用都将进行新鲜度检查,以确保元素引用仍然有效。
这基本上决定了元素是否仍然附加到 DOM。如果此测试失败,则 抛出 StaleElementReferenceException,并且将来对此实例的所有调用都将失败。
1.1. clear()
如果文本是文本输入元素,则清除文本。
1.2. click()
单击元素。
1.3. find_element(by='id', value=None)¶
找到给定 By 策略和定位器的元素。尽可能优先使用 find_element_by_* 方法。
-
用法:
element = element.find_element(By.ID, 'foo')
-
返回类型:WebElement
1.4. find_element_by_class_name(name)
查找此元素的子元素按 class name.
-
参数
- name: 要查找的元素的类名
-
返回
- WebElement - 如果找到元素
-
Raises :
- NoSuchElementException - 如果找不到该元素
-
用法:
element = element.find_element_by_class_name('foo')
1.5. find_element_by_css_selector(css_selector)
查找此元素的子元素按 CSS selector.
-
参数
- css_selector - CSS 选择器字符串,例如:'a.nav#home'
-
返回
- WebElement - 如果找到元素
-
Raises :
- NoSuchElementException - 如果找不到该元素
-
用法:
element = element.find_element_by_css_selector('#foo')
1.6. find_element_by_id(id_)
查找此元素的子元素按 ID.
-
参数
- id_ - I 要查找的子元素的 ID
-
返回
- WebElement - 如果找到元素
-
Raises :
- NoSuchElementException - 如果找不到该元素
-
用法:
foo_element = element.find_element_by_id('foo')
1.7. find_element_by_link_text(link_text)
查找此元素的子元素按可见 link text.
-
参数
- link_text - 要搜索的链接文本字符串。
-
返回
- WebElement - 如果找到元素
-
Raises :
- NoSuchElementException - 如果找不到该元素
-
用法:
element = element.find_element_by_link_text('Sign In')
1.8. find_element_by_name(name)
查找此元素的子元素按 name.
-
参数
- name - 要查找的元素的 name 属性
-
返回
- WebElement - 如果找到元素
-
Raises :
- NoSuchElementException - 如果找不到该元素
-
用法:
element = element.find_element_by_name('foo')
1.9. find_element_by_partial_link_text(link_text)
查找此元素的子元素按部分可见 link text.
-
参数
- link_text: 要部分匹配的元素的文本
-
返回
- WebElement - 如果找到元素
-
Raises :
- NoSuchElementException - 如果找不到该元素
-
用法:
element = element.find_element_by_partial_link_text('Sign')
1.10. find_element_by_tag_name(name)
查找此元素的子元素按 tag name.
-
参数
- name - html 标记的名称 (eg: h1, a, span)
-
返回
- WebElement - 如果找到元素
-
Raises :
- NoSuchElementException - 如果找不到该元素
-
用法:
element = element.find_element_by_tag_name('h1')
1.11. find_element_by_xpath(xpath)
通过 xpath 查找元素
-
参数
- xpath - 要定位的元素的 xpath。 "//input[@class='myelement']"
注意: 基本路径将相对于此元素的位置。
这将选择此元素下的第一个链接。
myelement.find_element_by_xpath(".//a")
但是,这将选择页面上的第一个链接。
myelement.find_element_by_xpath("//a")
-
返回
- WebElement - 如果找到元素
-
Raises :
- NoSuchElementException - 如果找不到该元素
-
用法:
element = element.find_element_by_xpath('//div/td[1]')
1.12. find_elements(by='id', value=None)
查找按策略和定位器给出的元素。尽可能优先使用 find_elements_by_*
方法。
-
用法:element =
element.find_elements(By.CLASS_NAME, 'foo')
-
返回类型:WebElement 列表
1.13. find_elements_by_class_name(name)
查找此元素的子元素中的元素列表,通过 class name.
-
参数
- name: 要查找的元素的类名
-
返回
- WebElement 列表 - 包含元素的列表(如果找到)。如果没有,则为空列表
-
用法:
elements = element.find_elements_by_class_name('foo')
1.14. find_elements_by_css_selector(css_selector)
查找此元素的子元素中的元素列表,通过 CSS selector.
-
参数
- css_selector - CSS 选择器字符串,例如: 'a.nav#home'
-
返回
- WebElement 列表 - 包含元素的列表(如果找到)。如果没有,则为空列表
-
用法:
elements = element.find_elements_by_css_selector('.foo')
1.15. find_elements_by_id(id_)
查找此元素的子元素中的元素列表,通过 ID。
-
参数
- id_ - 要查找的子元素的 ID
-
返回
- WebElement 列表 - 包含元素的列表(如果找到)。如果没有,则为空列表
-
用法:
elements = element.find_elements_by_id('foo')
1.16. find_elements_by_link_text(link_text)
查找此元素的子元素中的元素列表,通过可见 link text.
-
参数
- link_text - 要搜索的链接文本字符串。
-
返回
- WebElement 列表 - 包含元素的列表(如果找到)。如果没有,则为空列表
-
用法:
elements = element.find_elements_by_link_text('Sign In')
1.17. find_elements_by_name(name)
按名称查找此元素的子元素中的元素列表
-
参数
- name - 要搜索的 name 属性
-
返回
- WebElement 列表 - 包含元素的列表(如果找到)。如果没有,则为空列表
-
用法:
elements = element.find_elements_by_name('foo')
1.18. find_elements_by_partial_link_text(link_text)
查找此元素的子元素中的元素列表,通过 partial link text.
-
参数
- link_text: 要部分匹配的元素的文本
-
返回
- WebElement 列表 - 包含元素的列表(如果找到)。如果没有,则为空列表
-
用法:
elements = element.find_elements_by_partial_link_text('Sign')
1.19. find_elements_by_tag_name(name)
查找此元素的子元素中的元素列表,通过 tag name.
-
参数
- name - html 标记的名称 (eg: h1, a, span)
-
返回
- WebElement 列表 - 包含元素的列表(如果找到)。如果没有,则为空列表
-
用法:
elements = element.find_elements_by_tag_name('h1')
1.20. find_elements_by_xpath(xpath)
通过 xpath 查找元素中的元素列表
-
参数
- xpath - xpath 定位器字符串
注意: 基本路径将相对于此元素的位置
这将选择此元素下的所有链接
myelement.find_elements_by_xpath(".//a")
但是,这将选择页面本身中的所有链接。
myelement.find_elements_by_xpath("//a")
-
返回
- WebElement 列表 - 包含元素的列表(如果找到)。如果没有,则为空列表
-
用法:
elements = element.find_elements_by_xpath("//div[contains(@class, 'foo')]")
1.21. get_attribute(name)
获取元素的给定属性或属性值。
此方法将首先尝试返回具有给定名称的属性的值。如果不存在具有该名称的属性,则返回具有相同名称的属性的值。如果没有具有该名称的属性,则返回 None。
被视为真实的值,即等于True
或False
,将作为布尔值返回。所有其他非 None 值将作为字符串返回。对于不存在的属性或属性, 返回 None。
-
参数
- name - 要检索的属性 / 属性的名称
-
举例:
# 检查 "active" CSS 类是否应用于元素 is_active = "active" in target_element.get_attribute("class")
1.22. get_property(name)
获取元素的给定属性
-
参数
- name - 要检索的属性的名称
-
举例:
text_length = target_element.get_property("text_length")
1.23. id
selenium 内部使用 ID
这主要供内部使用。简单的用例,例如检查 2 个 webelements 是否引用相同的元素,可以使用 == 来完成:
if element1 == element2:
print("These 2 are equal")
1.24. is_displayed()
元素是否对用户可见。
1.25. is_enabled()
返回元素是否已启用。
1.26. is_selected()
返回是否选中元素。
可用于检查是否选中了复选框或单选按钮。
1.27. location
可渲染画布中元素的位置。
1.28. location_once_scrolled_into_view
这个属性可以在没有警告的情况下改变。用这个来发现屏幕上的一个元素是什么,这样我们就可以点击它。这种方法应该使元素被滚动到视图中。
返回屏幕上的左上角位置,如果元素不可见,则返回 None。
1.29. parent
找到此元素的 WebDriver 实例的内部引用
1.30. rect
包含元素大小和位置的字典
1.31. screenshot(filename)
将当前元素的屏幕截图保存到 PNG 图像文件。
如果存在任何 IOError 则返回 false,否则返回 True。在文件名中使用完整路径。
-
参数
- filename: 希望将屏幕截图保存到的完整路径。这应该以
.png
扩展名结尾。
- filename: 希望将屏幕截图保存到的完整路径。这应该以
-
用法:
element.screenshot('/Screenshots/foo.png')
1.32. screenshot_as_base64
获取当前元素的屏幕截图作为 base64 编码的字符串
- 用法:
img_b64 = element.screenshot_as_base64
1.33. screenshot_as_png
获取当前元素的屏幕截图作为二进制数据
- 用法:
element_png = element.screenshot_as_png
1.34. send_keys(*value)
模拟键入元素
-
参数
- value - 用于键入或设置表单字段的字符串。对于设置文件输入,这可以是本地文件路径。
使用此命令发送简单的键事件或填写表单字段:
form_textfield = driver.find_element_by_name('username')
form_textfield.send_keys("admin")
这也可用于设置文件输入
file_input = driver.find_element_by_name('profilePic')
file_input.send_keys("path/to/profilepic.gif")
# 通常,最好将文件路径包装在操作系统中的一个方法中。
# 返回实际路径以支持交叉操作系统测试的路径。
# file_input.send_keys(os.path.abspath("path/to/profilepic.gif"))
1.35. size
元素的大小
1.36. submit()
提交表单
1.37. tag_name
此元素的 tagName 属性
1.38. text
元素的文本
1.39. value_of_css_property(property_name)
CSS 属性的值