我印象深刻的是,所有最新的浏览器现在都使用XPath 2。当我使用lower-case()
和uppser- case()
(版本2中引入的功能)时,Chrome抛出语法错误。但是,它们较旧的替代方法translate()
效果很好。
这是错误还是最新的Chrome实际使用了XPath 1?有没有找到XPath版本的命令/方式?
// Finds the element as expected.
$x('//h2/text()[. = "Delete"]')
// Doesn't find the element (also expected).
$x('//h2/text()[. = "delete"]')
// SyntaxError: Failed to execute 'evaluate' on 'Document': The string '//h2/text()[lower-case(.) = "delete"]' is not a valid XPath expression.
$x('//h2/text()[lower-case(.) = "delete"]')
不,Chrome使用XPath 1.0。
您可以将XPath表达式简化为v2.0函数来查看:
$x("lower-case('ABC')")
SyntaxError: Failed to execute 'evaluate' on 'Document': The string 'lower-case('ABC')' is not a valid XPath expression.
尝试使用其他任何XPath 2.0函数current-date()
都会产生类似的错误。
除了此类探针之外,没有内置的方法来确定XPath实现的版本。
另一方面,XSLT system-property('xsl:version')
可以确定版本1.0与版本2.0。
问题内容: 是否可以使用Java 而非 JavaScript 构建Chrome扩展程序?(我在Eclipse IDE中使用Java SE。) 问题答案: Chrome扩展程序必须运行JavaScript。但是,您可以使用Google Web Toolkit 将Java编译为JavaScript。
问题内容: 我想开始使用node.js开发Google Chrome扩展程序(因为我已经在node.js中编写了“文本转歌曲”脚本,并且希望将其转换为Chrome扩展程序。)将是解决此问题的最直接方法? 问题答案: 其实是。查看此开发人员直播。这也是我一直在寻找的东西,它将为您提供帮助。 这会将您的节点应用程序捆绑到浏览器中。这是仓库! 编辑: 我注意到我的这个旧答案时不时地不断投票(谢谢大家)。
问题内容: 我尝试搜索,但没有找到明确的答案。在Windows Server 2016上,没有实际安装Chrome浏览器。我下载了正确的“ chromedriver.exe”并将其放置在“ D:\ Apps \ chromedriver.exe”中。我已将完整路径添加为“ D:\ Apps \ chromedriver.exe”到我的环境PATH中。 当我尝试启动使用最新Selenium的Wind
问题内容: 我有协议(如http),其方案由在Mac OS XIe中注册的第3方应用程序,x-someapp:// someaction或类似的东西管理。 如何使用Google Chrome浏览器打开此URL?默认情况下,Chrome开始在Google引擎中搜索,而不是启动App并将URL处理传递给它。 Safari启动一些已注册的应用程序。这是对的。 Firefox和Opera问该怎么办…,我也
我使用Firebase动态链接。当我点击Android设备上的链接时,它会询问我想用哪个应用打开:Chrome(浏览器)还是处理链接的应用。是否可以禁用使用chrome打开这些链接并立即打开应用程序? 我遵循这些指示:https://firebase.google.com/docs/dynamic-links/android/receive
问题内容: 我正在使用这个小脚本来查找Firebug是否打开: 而且效果很好。现在,我正在搜索半小时,以找到一种方法来检测Google Chrome的内置Web开发人员控制台是否已打开,但找不到任何提示。 这个: 不起作用。 编辑: 因此,似乎无法检测到Chrome控制台是否处于打开状态。但是有一个“hack”有效,但有一些缺点: 控制台断开连接后将无法工作 在页面加载中打开控制台时将不起作用 因