SeleniumLibrary库-定位元素 为使用SeleniumLibrary库做准备 SeleniumLibrary 浏览器和窗口 SeleniumLibrary库-定位元素 SeleniumLibrary中需要与网页上的元素进行交互的所有关键字,都带有一个通常称为locator的参数,该参数指定如何查找该元素。 通常,使用以下描述的 定位符语法 将定位符作为字符串给出,但是也可以使用WebElements。 Locator 语法 SeleniumLibrary支持根据不同的策略查找元素,例如元素id,XPath表达式或CSS选择器。 可以使用前缀明确指定策略,也可以隐式指定策略。 默认定位器策略 默认情况下,定位器被认为使用关键字特定的默认定位器策略。 所有关键字都支持基于id和name属性的查找元素,但是某些关键字支持在上下文中有意义的其他属性或其他值。例如,单击链接支持href属性,链接文本以及常规id和name的添加。 例如 Click Element example # 匹配 id 或者 name. Click Link example # 匹配链接文本和href. Click Button example # 匹配 id, name 或者 value. 如果定位器意外地以识别为显式定位器策略或隐式XPath策略的前缀开头,则可以使用显式default前缀来启用默认策略。 例如 Click Element name:foo # 查找名称为foo的元素。 Click Element default:name:foo # 使用默认策略使用值名称 name:foo. Click Element //foo # 使用查找元素 XPath //foo. Click Element default: //foo # 将默认策略与value结合使用 //foo. 明确的定位器策略 使用语法strategy:value或strategy = value使用前缀指定显式定位器策略。首选前一种语法,因为后者与Robot Framework的命名参数语法相同,并且可能导致问题。分隔符周围的空格将被忽略,因此id:foo,id:foo和id:foo都是等效的。 例如 策略 基于什么匹配 实例 id Element id. id:example name name attribute. name:example identifier Either id or name. identifier:example class Element class. class:example tag Tag name. tag:div xpath XPath expression. xpath://div[@id="example"] css CSS selector. css:div#example dom DOM expression. dom:document.images[5] link Exact text a link has. link:The example partial link Partial link text. partial link:he ex sizzle Sizzle selector deprecated. sizzle:div.example jquery jQuery expression. jquery:div.example default Keyword specific default behavior. default:example 有关默认策略如何工作的更多信息,请参见下面的默认定位器策略部分。仅当定位器值本身偶然与某些显式策略匹配时,才需要使用显式默认前缀。 不同的定位器策略有不同的优缺点。建议尽可能使用id(显式地像id:foo一样)或使用默认的定位器策略(像foo一样),因为语法很简单,并且对于浏览器来说,按id定位元素很快。 如果元素没有ID或ID不稳定,则需要使用其他解决方案。 如果元素具有唯一的标签名称或类,则使用标签,类或css策略(例如tag:h1,class:example或css:h1.example)通常是一个简单的解决方案。 在更复杂的情况下,使用XPath表达式通常是最好的方法。它们非常强大,但缺点是它们也可能变得复杂。 实例 Click Element id:foo # Element with id 'foo'. Click Element css:div#foo h1 # h1 element under div with id 'foo'. Click Element xpath: //div[@id="foo"]//h1 # Same as the above using XPath, not CSS. Click Element xpath: //*[contains(text(), "example")] # Element containing text 'example'. 注意 SeleniumLibrary 3.0和更高版本仅支持strategy:value语法。 使用sizzle策略或其别名jquery要求被测系统包含jQuery库。 在SeleniumLibrary 3.0之前,与表相关的关键字仅支持xpath,css和sizzle / jquery策略。 为使用SeleniumLibrary库做准备 SeleniumLibrary 浏览器和窗口