Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
selenium webdriver javascript查询_Javascript_Node.js_Selenium_Scroll_Mocha.js - Fatal编程技术网

selenium webdriver javascript查询

selenium webdriver javascript查询,javascript,node.js,selenium,scroll,mocha.js,Javascript,Node.js,Selenium,Scroll,Mocha.js,我最近将SeleniumWebDriver(nodejs模块)与mocha结合使用,用于编写自动化测试,这些是我面临的一些问题 滚动 返回false,因为它无法定位元素,因为它在当前窗口中不可见,但在下面的某个位置。读了一些博客,我认为滚动可以解决这个问题。但是,我在selenium中找不到一个API可以帮助我在浏览器中上下左右滚动。我试着用 scrollBy(xDelta,yDelta) 方法,但它也不起作用 读取从后端动态更新文本的元素的文本。 DOM元素的文本属性中不存在文本。我有元素的

我最近将SeleniumWebDriver(nodejs模块)与mocha结合使用,用于编写自动化测试,这些是我面临的一些问题

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

scrollBy(xDelta,yDelta)
方法,但它也不起作用

读取从后端动态更新文本的元素的文本。 DOM元素的文本属性中不存在文本。我有元素的xpath,所以这是访问元素的唯一方法

我有两个要求

我需要读取并获取html页面中某些元素的值并存储它

B.)我需要阅读元素并根据一些文本断言它

您能告诉我执行相同操作的webdriver nodejs API方法吗

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

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


非常感谢您使用selenium webdriver无需滚动到元素。如果您想对页面底部某处的元素执行某些操作,selenium将滚动页面并单击元素(或执行另一个操作)

Selenium webdriver使用Promissions(有关返回元素/属性值的更多信息,请参阅),因此,如果要获取元素/属性值,则需要执行以下操作:

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中使用任何特定的方法来等待文本更改,只需创建一个循环,它将在元素中查找值一段时间。

Hi andrey..非常感谢您的回答..我有一个疑问,html元素的文本属性中不存在文本。相反,它看起来失败了,我们该怎么办?你能为html的一部分提供你的元素和你用来查找必要元素的选择器吗?如果你需要从td元素中获取文本,那么一切都非常简单
driver.findElement(webdriver.By.css(“.ng binging”))。然后(函数(elem){return elem.getText()。然后(函数(text){expect(text).toBe(“FAILED”);})
Offline 2014-08-21T09:30:03.039Z失败,因此这是html,我使用xpath“html/body/section/section/div[2]/div/div/div[1]/table/tbody/tr[1]/td[3]”访问ITI,如果我想阅读文本“失败”现在以编程方式…我该怎么做..非常感谢您的时间,请参阅我以前的答案,这将帮助您获取“td class=ng binding”中的文本滚动问题和文本问题本质上是不同的问题。当你有多个问题彼此紧密相关时,可以将它们放在一个SO问题中,但当你有问题彼此不紧密相关时,它们应该放在不同的SO问题中。好的,路易斯。我将遵循这种方法从今往后。抱歉!!我是新来的
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");
      });
})