在前端,有些文本是可以点击并跳转至指定页面的,我们称之为“超链接”。
这种超链接用<a></a>定义,且<a> 标签的 href 属性用于指定超链接目标的 URL。
在python中,有两种定位超链接元素的方法:
方法1:精确定位。
精确定位的方法:find_element_by_link_text()
def find_element_by_link_text(self, link_text): """ Finds an element by link text. :Args: - link_text: The text of the element to be found. :Returns: - WebElement - the element if it was found :Raises: - NoSuchElementException - if the element wasn't found :Usage: element = driver.find_element_by_link_text('Sign In') """ return self.find_element(by=By.LINK_TEXT, value=link_text)
精确定位方法中,必须填写完整的超链接文本内容。
参数link_text:完整的超链接文本内容。
返回值:如果找到元素,则返回WebElement对象。否则,抛出NoSuchElementException异常。
用法举例:element = driver.find_element_by_link_text("标签文本")
方法2:部分定位
部分定位的方法:find_element_by_partial_link_text()
def find_element_by_partial_link_text(self, link_text): """ Finds an element by a partial match of its link text. :Args: - link_text: The text of the element to partially match on. :Returns: - WebElement - the element if it was found :Raises: - NoSuchElementException - if the element wasn't found :Usage: element = driver.find_element_by_partial_link_text('Sign') """ return self.find_element(by=By.PARTIAL_LINK_TEXT, value=link_text)
我们可以看到,部分定位只需要填写超链接元素的部分文本内容。
需要我们注意的是:部分文本是必须相连的,即是全部文本的一个子部分。如整体文本为“百度文案”,那么部分
的文本定位“度案”则是错误的,是无法定位到的。
拓展:selenium中,八种定位方式最终都是通过调用find_element(by, value)方法