是的,您看对了。
根据目前
WebDriver - W3C Candidate Recommendation的Locator Strategies征募情况如下:
"css selector"
:CSS选择器"link text"
:链接文本选择器"partial link text"
:部分链接文本选择器"tag name"
: 标签名"xpath"
:XPath选择器
但是,JsonWireProtocol曾经曾经被用来支持下面列出的“定位器策略”,但是目前该文档明确指出其状态为“已过时”:
class name
:返回其类名称包含搜索值的元素;不允许使用复合类名称。css selector
:返回与CSS选择器匹配的元素。id
:返回其ID属性与搜索值匹配的元素。name
:返回其NAME属性与搜索值匹配的元素。link text
:返回其可见文本与搜索值匹配的锚元素。partial link text
:返回一个锚元素,其可见文本部分与搜索值匹配。tag name
:返回其标签名称与搜索值匹配的元素。xpath
:返回与XPath表达式匹配的元素。提供的XPath表达式必须“按原样”应用于服务器;如果表达式不是相对于元素根的,则服务器不应修改它。因此,XPath查询可能返回根元素的子树中未包含的元素。
快照:
定位器策略
更改通过相应的客户端特定绑定传播。对于Selenium-Java客户,这是客户代码,我们在其中为用户提供开关柜:
switch (using) { case "class name": toReturn.put("using", "css selector"); toReturn.put("value", "." + cssEscape(value)); break; case "id": toReturn.put("using", "css selector"); toReturn.put("value", "#" + cssEscape(value)); break; case "link text": // Do nothing break; case "name": toReturn.put("using", "css selector"); toReturn.put("value", "*[name='" + value + "']"); break; case "partial link text": // Do nothing break; case "tag name": toReturn.put("using", "css selector"); toReturn.put("value", cssEscape(value)); break; case "xpath": // Do nothing break; } return toReturn;现在,您的问题必须是为什么在W3C Specs和中进行此更改clients。根据#1042,WebDriver贡献者的回答很简单:
This keeps the specification simple as these can be implemented using the CSS selector, which maps down to querySelector/querySelectorAll.



