相关疑难解决方法(0)

webdriver的官方定位策略

官方W3c webdirver文档中,明确指出位置策略是:

State   Keyword
CSS selector    "css selector"
Link text selector  "link text"
Partial link text selector  "partial link text"
Tag name    "tag name"
XPath selector  "xpath"
Run Code Online (Sandbox Code Playgroud)

但是,Selenium的电线协议允许:

class name  
css selector
id  
name
link text
partial link text
tag name
xpath
Run Code Online (Sandbox Code Playgroud)

在理论中,Selenium的文档已经过时,"真实"的故事在新的规范文档中.然而...

我在最新的Chrome自己的Webdriver上运行了一些测试,我可以确认这一点,name并且class name两者都有效; 但是,它们不符合规格.

我记得在Chromium问题上阅读他们只会实现官方的Webdriver规范.

现在:我知道通用答案,其中"规格并不总是100%遵循"等.但是,我想知道的是:

  • 你能找到Chromium中实现这个的代码吗?(链接将是最受欢迎的)
  • 在Chromium邮件列表中是否有关于这些的讨论?
  • "非官方"命令("旧"硒规格文件中记录的)可能会留下来吗?你在哪里读到的?

javascript selenium google-chrome chromium chrome-web-driver

12
推荐指数
1
解决办法
5128
查看次数

如何使用 selenium 自动化 shadow DOM 元素?

我正在使用 Java Selenium 项目进行网页自动化。该网页包含许多我无法使用 seleniumfindElement方法与之交互的多级 shadow-root DOM 元素。

我尝试了以下解决方案:

  • deep css(不适用于最新的 chrome 浏览器)
  • JS 执行器。(这真的很乏味,维护起来也很复杂)

笔记:

如果您知道我可以在 Selenium Java 框架中实现的除上面列出的任何其他解决方案,请传递该解决方案。提前致谢 !。

javascript java selenium shadow-dom polymer

6
推荐指数
5
解决办法
3万
查看次数

使用硒测试聚合物元素和阴影DOM

我在将Selenium与影子DOM内的元素一起使用时遇到问题。有这个窍门吗?难道我做错了什么?

这是我的各种尝试:

var webdriver = require('selenium-webdriver');
var driver = new webdriver.Builder().forBrowser('chrome').build();

driver.get('https://shop.polymer-project.org/');

// Goal is to find shop-app #shadow-root app-header
//

// This is OK; no shadow DOMs
driver.findElement(webdriver.By.css('shop-app'));

// This fails because:
// NoSuchElementError: no such element: Unable to locate element
driver.findElement(webdriver.By.css('shop-app /deep/ app-header'));

// This fails because:
// NoSuchElementError: no such element: Unable to locate element
driver.findElement(webdriver.By.css('shop-app::shadow app-header'));

// This fails because:
// TypeError: Custom locator did not return a WebElement
driver.findElement(webdriver.By.js(function() {
    return document.querySelector('shop-app /deep/ app-header');
})); …
Run Code Online (Sandbox Code Playgroud)

javascript selenium shadow-dom polymer

4
推荐指数
1
解决办法
2739
查看次数

使用cssSelector清除Chrome浏览器的浏览数据时,如何与#shadow-root(打开)中的元素进行交互

我一直在关注如何使用硒自动实现阴影DOM元素的讨论#shadow-root (open)元素一起工作。

在通过“ 硒”访问url时出现Clear data的“ 清除浏览数据”弹出窗口中定位按钮的过程中,我无法找到以下元素:chrome://settings/clearBrowserData

#shadow-root (open)
<settings-privacy-page>
Run Code Online (Sandbox Code Playgroud)

快照:

设置隐私页面

使用Selenium,以下是我的代码试用以及遇到的相关错误:

css java selenium css-selectors shadow-dom

4
推荐指数
1
解决办法
1393
查看次数