我最近一直在结合使用 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/