javascript - selenium webdriver javascript 查询

标签 javascript node.js selenium scroll mocha.js

我最近一直在结合使用 selenium webdriver (nodejs 模块)和 mocha 来编写自动化测试,这些是我遇到的一些问题

滚动

driver.findElement()

返回 false,因为它无法找到该元素,因为该元素在当前窗口中不可见,但位于其下方的某个位置。阅读一些博客,我认为滚动可以解决问题。但是,我在 selenium 中找不到可以帮助我在浏览器中向上、向下、向左、向右滚动的 API。我尝试使用

scrollBy(xDelta,yDelta)

it()子句中的javscript方法,但它也不起作用

读取元素的文本,其中文本从后端动态更新。

该文本不存在于 DOM 元素的文本属性中。我有该元素的 xpath,所以这是我访问该元素的唯一方法。

我有两个要求

A.)我需要读取并获取html页面中某些元素的值并将其存储

B.) 我需要读取该元素并针对某些文本断言它

您能告诉我用于执行相同操作的 webdriver Nodejs API 方法吗?

等待特定文本

我尝试读取的元素文本会随着时间的推移而变化,以响应各种事件。如何使用 selenium webdriver 的 javascript API 以编程方式等待特定文本

我是selenium的新手,虽然我发现了很多关于上述问题的讨论,但它们都是针对selenium的其他平台,例如java等; Nodejs 平台的 selenium API 的文档非常少。所以请帮我做同样的事情

提前非常感谢

最佳答案

您不需要使用 selenium webdriver 滚动到元素。如果你想对页面底部某处的元素执行某些操作,那么selenium将滚动页面并单击元素(或执行其他操作);

Selenium-webdriver 使用 promise (请参阅 this documentation 以获取返回元素/它的属性值的更多信息,因此如果您想获取某些元素/或其属性的值,您下一步需要执行以下操作:

driver.findElement(webdriver.By.css("some selector")).then(function(elem){
    //e.g. return text in element
      return elem.getText().then(function(text){
            expect(text).toBe("your text");
      });
})

您不需要在 selenium 中使用任何特定方法来等待文本更改,只需创建循环,该循环将在一段时间内查找元素中的值。

关于javascript - selenium webdriver javascript 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25503035/

相关文章:

javascript - Elementor - 滚动 "motion-effects"在调整窗口大小之前不起作用

php - 在不引起数据问题的情况下可视化 chop 文本

python - 如何从操纵延迟加载方法的网页中获取所有数据?

java - 如何从selenium java中的SVG标签内的 "text"标签获取值

java - 使用 Selenium 和 Chrome 开发工具的浏览器内存泄漏自动化

javascript - 将值从 html <select multiple> 复制到剪贴板

javascript - 如何从 jQuery Select Slider 获取值?

在静态路由上使用 Express 进行 AJAX 抓取

node.js - 如何使用 Passport.js 在 Node.js 中重置/更改密码?

node.js - 如何通过 Node.js Bluemix 推送 API 注册设备