【问题标题】:Selenium WebDriver Javascript : Modify element CSSSelenium WebDriver Javascript:修改元素 CSS
【发布时间】:2014-08-12 20:08:15
【问题描述】:

我正在使用 Selenium Javascript WebDriver 编写自动化测试。我想知道如何修改页面上的 CSS。

http://code.google.com/p/selenium/wiki/WebDriverJs

到目前为止,我能够获取 DOM 元素、单击它们或在输入字段中输入文本。

driver.findElement(webdriver.By.css("#myid"));
webElem.click();
webElem.sendKeys();

我现在遇到一个输入字段类型被隐藏的问题。所以当我尝试做 webElem.sendKeys() 我得到这个错误:

"Element is not clickable at point"

我想将此输入字段的类型从“隐藏”更改为“文本”,以便可以在其上调用 sendKeys。我找不到任何有关如何执行此操作的文档。

【问题讨论】:

  • 为什么?如果它是隐藏的,它真的是你真正想要与之交互的元素吗?特定的用户操作是否会导致该元素显示?用户需要做什么才能实际填充该输入字段?
  • 用户需要移动一个滑块,这会导致该输入字段的值发生变化,我真的不知道如何用 selenium 拖动滑块,除了我觉得直接更改输入值是一个更简单的选择。
  • 这不像生活,如果这些测试应该用于自动 CI 回归测试,您需要它们尽可能像用户和生活一样。我会找出您如何亲自更改滑块。滑块由什么组成?它是标准滚动条吗?一个 jquery 插件?
  • 不,它是一个 yui 插件,不管这样做的复杂性不值得麻烦,我需要通过提供不同的输入值来测试不同的场景。更改输入值将在这里完成工作。

标签: javascript selenium-webdriver


【解决方案1】:

你可以像这样执行Javascript:

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

driver.executeScript('/* document.getElementById etc. */');

但原则上,我同意上述 cmets 中的 Arran。

【讨论】:

  • 感谢您的成功,我通过注入 javascript 更改了该元素的 CSS 属性。但这似乎是一个 hacky 解决方案。有没有办法通过使用 webdriver API 来实际更改页面 CSS?
  • 你可以获取属性,但据我所知没有设置。
猜你喜欢
  • 2016-01-07
  • 1970-01-01
  • 2021-11-09
  • 1970-01-01
  • 2011-04-26
  • 2013-07-16
  • 2013-07-28
  • 2023-04-01
  • 1970-01-01
相关资源
最近更新 更多