gpt4 book ai didi

dom - Selenium 的幕后工作

转载 作者:行者123 更新时间:2023-12-03 23:50:55 24 4
gpt4 key购买 nike

关闭。这个问题需要更多 focused .它目前不接受答案。












想改进这个问题?更新问题,使其仅关注一个问题 editing this post .

8年前关闭。




Improve this question




作为一名 selenium 测试开发人员,我一直使用 WebDriver 的知识仅限于在开发测试脚本时使用该工具。但我很想知道 WebDriver 如何与浏览器上的页面交互 内部 .

我的问题是:

  • 我读过 webdriver 直接与自动化交互
    浏览器的引擎,而不是像 Selenium 那样执行 Javascript
    钢筋混凝土。这是否意味着 WebDriver 不执行 Javascript
    在所有的内部?这是否意味着与 DOM 交互的方式不止一种?我相信 Javascript 是在浏览器上访问/解析 DOM 的唯一方法。
  • Selenium RC 使用代理来消除同源策略的问题。 WebDriver 如何解决同源策略问题?
  • WebDriver 使用 JSON 有线协议(protocol)。但是在哪里的组件
    WebDriver 使用的是 JSON Wire 协议(protocol)吗?是否在驱动程序中使用
    不同的浏览器?还是在语言绑定(bind) API 中使用?
  • 当我的代码是:
    WebDriver driver = new ChromeDriver();
    driver.get("http://www.google.com");
    WebElement searchField = driver.findElement(By.name("q"));
    searchField.sendKeys("selenium");
    上面代码执行时,WebDriver 是如何访问 DOM 的?

  • 如果有人能详细地向我解释这些,那真的很有帮助。我想制作一个关于 WebDriver 内部工作的社区 wiki,希望能帮助任何搜索这个主题的人。提前致谢!

    最佳答案

    与浏览器或 RemoteWebDriver 服务器通信的所有 WebDriver 实现都使用通用的有线协议(protocol)。此有线协议(protocol)使用基于 HTTP 的 JSON 定义了一个 RESTful Web 服务。

    所以每个WebDriver命令都通过WebDriver服务映射到一个HTTP方法,然后传递给HTTP命令处理器与浏览器进行通信。
    命令响应通过 WebDriver 服务作为 HTTP/1.1 响应消息返回。

    不同的驱动程序,例如 Firefox 驱动程序和 IE 驱动程序,有不同的实现来完成上述操作。

    下面链接的 Selenium WebDriver 架构文档详细介绍了这些是如何实现的,以及 WebDrvier 命令如何流向浏览器并返回。
    有关 Firefox 驱动程序的详细信息,请阅读第 16.6 节。

    The Architecture of Open Source Applications - Selenium WebDriver
    作者:Simon Stewart(WebDriver 的创建者,Selenium 项目的核心贡献者)

    此外,关于 The WebDriver Wire Protocol 的详细信息将有助于理解 HTTP 方法是如何映射的。

    关于dom - Selenium 的幕后工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23075016/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com