栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Webdriver的官方定位器策略

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Webdriver的官方定位器策略

是的,您看对了。

根据目前

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
.



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/463877.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号