webdriver-sync异步运行?

时间:2017-09-07 09:53:53

标签: node.js selenium selenium-webdriver synchronous

我正在尝试创建同步运行每个步骤的selenium测试,而不使用.then()或async / await。这样做的原因是我想创建一组函数,这些函数允许我们测试团队中的任何人,几乎不管技术技能如何都能编写易于阅读的自动化测试。它看起来像webdriver-sync应该给我我想要的东西。但是,以下虚拟代码会产生问题:

var wd = require('webdriver-sync');
var By = wd.By;
var Chromedriver = wd.Chromedriver;
var driver = new Chromedriver;
driver.get('https://my.test.url');
var myButton = driver.findElement(By.cssSelector('[id*=CLICK_ME]'));
myButton.click();

尝试运行 - 浏览器启动,页面开始加载......但步骤不是同步执行的 - 它继续并尝试查找并在页面加载完成之前单击“myButton”,抛出“没有这样的元素“错误......对我而言,有点击败了webdriver-sync的问题?!有人能告诉我哪里出错了吗?

FWIW,我有webdriver-sync 1.0.0,节点v7.10.0,java 1.8.0_74,都在CentOS 7上运行。

提前致谢!

1 个答案:

答案 0 :(得分:1)

你需要在" CLICK_ME"周围加上双引号。因为它是一个字符串值。

但一般来说,等待特定元素是一个好主意,因为动态页面通常已经准备好了#34;在创建所有元素之前。