在一开始我想说我不是Javascript的“母语”。
我正在Selenium Webdriver中编写UI自动化测试,我尽可能地了解框架。在the documentation of Selenium Webdriver中有WebElement
类的描述。该类有一个名为findElement
的方法,该方法传递一个locator
参数。参数的类型是(By|Function)
。我不明白(By|Function)
表示法。 locator
参数的确切类型是什么?是某类课的对象吗?这是什么意思?最后,我可以说By
是Selenium Webdriver中的另一个类。
在Selenium文档中,符号(A|B)
的意思是“A
或B
”。所以(By|Function)
意味着locator
参数预计是By
类型或Function
类型。 Function
是函数的标准JavaScript类型名称。根据By
的说法,the docs是一个Selenium类:“描述了一种在页面上定位元素的机制。”
findElement
的文档页面显示了使用这些参数类型的示例。
这不是标准的JavaScript语法,而是用于记录类型的语法。 JavaScript文档中的类型有一些不同的第三方语法:JSDoc(其语法与Google Closure Compiler的更好记录的Closure Type System相同),TypeScript和Flow。
在(By|Function)
的情况下,这是什么语法并不重要,因为|
在每个语法中的含义相同。 |
的意思是“或”,类似于||
,JavaScript中的“或”运算符。 Function
意味着任何功能,如function() { console.log('hi') }
。 By
特定于Selenium - 如果您在链接的Selenium文档中单击它,您会发现它是Class By
的链接,这是一个可以使用JavaScript API构建的类。