问题标签 [webdriver-w3c-spec]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
19594 浏览

java - selenium 中的 ChromeDriver 和 WebDriver 有什么区别?

如果我们创建:

chrome 驱动程序方法将被执行。

如果我们创建:

再次ChromeDriver执行方法[根据方法覆盖]。

那为什么我们只在执行时才写后一个呢?

0 投票
2 回答
2457 浏览

java - 是否可以以编程方式确定是否使用 W3C 动作命令?

Selenium Javadoc forActions.moveToElement表明xOffset和参数的含义yOffset如下。

考虑以下程序,在 Linux 上针对 Firefox Quantum 运行。

运行以下程序时,双击发生在搜索框的中间而不是左上角(我知道这是因为我注入了 JS 来记录单击的位置)。此外,在运行程序的终端中会输出以下消息。

是否可以以编程方式确定偏移量是来自元素的中心还是左上角Actions.moveToElement

0 投票
1 回答
3151 浏览

java - 有没有办法使用 Selenium WebDriver 而不通知文档它是由 WebDriver 控制的?

我正在自动化一个调用 CAPTCHA 来验证登录的网页,但我注意到这个页面只在我使用我的自动化测试代码时才请求这个 CAPTCHA,当我手动执行它时它不会请求。我要求开发团队在 QA 环境中禁用它,但通过安全代码是不可能的。

我需要知道是否有办法不对浏览器说我正在此页面上使用自动化测试。

你能帮我吗?

0 投票
15 回答
82107 浏览

java - Selenium webdriver:修改 navigator.webdriver 标志以防止硒检测

我正在尝试使用 selenium 和 chrome 在网站中自动执行一项非常基本的任务,但是网站以某种方式检测到 chrome 何时由 selenium 驱动并阻止每个请求。我怀疑该网站依赖于暴露的 DOM 变量,例如https://stackoverflow.com/a/41904453/648236来检测硒驱动的浏览器。

我的问题是,有没有办法可以使 navigator.webdriver 标志为假?我愿意在进行修改后尝试重新编译硒源,但我似乎无法在存储库https://github.com/SeleniumHQ/selenium的任何地方找到 NavigatorAutomationInformation 源

任何帮助深表感谢

PS:我还尝试了以下来自https://w3c.github.io/webdriver/#interface

但它只在初始页面加载后更新属性。我认为该站点在执行我的脚本之前检测到该变量。

0 投票
1 回答
729 浏览

python - selenium.common.exceptions.WebDriverException:消息:GET /session/.../window/rect 与 get_window_position() 的已知命令不匹配

当我运行这段代码

我收到这个错误

错误似乎在get_window_position()方法中。任何想法?

0 投票
2 回答
1270 浏览

selenium - 如果我们在 Selenium 自动化脚本中仅使用 Chrome 浏览器,那么使用 ChromeDriver 而不是 WebDriver 有什么好处

我以下列方式使用 WebDriver 和 ChromeDriver 变量:

  • 第 1 行:

    /li>
  • 第 2 行:

    /li>

我的脚本仅限于在 Chrome 驱动程序中运行测试用例,因此我永远不会使用任何其他浏览器进行测试。所以,如果我在我的代码中选择 Line2 而不是 Line1,这是否会在任何功能或好处方面产生任何影响。(除了 WebDriver 接口的现有方法之外,寻找 ChromDriver 类可以提供的任何其他功能)。

0 投票
2 回答
1739 浏览

java - 如何以最短的等待时间加速 Java Selenium 脚本

我目前正在开发一个 java selenium 项目,它通常是一个小脚本,我必须在其中检查每个元素是否存在,并基于触发了一些操作,但我们主要关心的是完成脚本的持续时间。

基本上我在我的脚本中使用了下面的每一个并运行了测试,虽然在每种情况下脚本都在运行,但我发现脚本执行持续时间的速度几乎没有提高。我正在使用等待

并随之而来

或者

我知道我可以选择 CSS 选择器,但在我的情况下,由于 DOM 树结构,这是不可行的。什么可以代替

这是为了检查元素是否存在,并基于此我必须触发多个其他操作。

0 投票
1 回答
101 浏览

selenium - Selenium Webdriver 从哪个地方获得标题 - 使用 driver.title

Selenium Webdriver 通常从哪个地方获得标题-使用driver.title

  • 来自页面源
  • 或者来自 DOM 结构
0 投票
1 回答
7740 浏览

json - 协议和Json Wire协议有什么区别

协议:定义通过网络交换数据的方法的标准。如果浏览器想要与服务器通信,它必须创建一个 HTTP 请求并将该 HTTP 请求发送到服务器以传达其对资源和选项的请求。服务器接收请求并对其进行处理并执行必要的操作并创建 HTTP 响应以发送到浏览器。浏览器在创建 HTTP 请求时必须遵循 HTTP 规范。服务器还必须遵循 HTTP 规范来创建 HTTP 响应。这就是浏览器和服务器之间的通信以标准方式发生的方式,通过遵循 HTTP 协议来避免冲突。

Json Wire Protocol:客户端有一个必须发送到服务器的对象。客户端将此对象转换为 JSON 对象并将其发送到服务器。服务器解析 JSON 对象并将其转换回对象以供使用。服务器将响应对象转换为 JSON 对象并将其发送回客户端。然后客户端将 JSON 对象转换为对象以供使用。

为什么后者被称为Json Wire Protocol

0 投票
2 回答
6861 浏览

python - 如何在不被检测到并通过 Python 使用 selenium webdriver 绕过 reCAPTCHA 的情况下抓取网站?

我知道网络抓取,我从不同的网站获取数据,我使用的是 python 语言和 selenium webdriver chrome。但是我称一个网站是打开的首页,然后我单击或转到任何其他页面,然后网站限制我并且网站知道我正在使用自动 chrome。