selenium – 点击一个button,直到出现一些元素
我正在尝试点击Yopmail网站上的“ Check for new emails
button,直到收到邮件(因为收件箱一开始是空的)。
我正在使用Selenium
的NodeJS
实现,使用Mocha
运行我的testing。 下面是我正在尝试点击,直到元素出现:
driver.get('http://yopmail.com'); driver.wait(until.elementLocated(By.css('#f .sbut'))); driver.findElement(By.name('login')).sendKeys(name); driver.findElement(By.css('#f .sbut')).sendKeys(Key.ENTER); driver.wait(until.elementLocated(By.id('ifinbox')));// Switching iframe driver.switchTo().frame("ifinbox"); bool = driver.isElementPresent("m1"); while (!bool) { driver.switchTo().defaultContent(); driver.findElement(By.id("lrefr")).click(); driver.sleep(500);// 500ms driver.switchTo().frame("ifinbox"); bool = driver.isElementPresent("m1"); }
ligne bool = driver.isElementPresent("m1");
失败,并显示以下错误消息:
Error: the error {} was thrown, throw an Error :) at Array.forEach (native)
我想我不能build立一个承诺的while循环…也许…但是,我真的不明白为什么它会失败,以及如何正确地写这个while循环。
任何build议是最受欢迎的!
根据源代码 , isElementPresent()
接受一个locator或者一个元素,但是你传入一个stringm1
。 假设这是一个id
:
bool = driver.isElementPresent(By.id("m1"));
- Node.JS连接计数器
- mongoose – 如何做许多错综复杂的关系? 具体快速挑战示例请求包括在下面。 谢谢
- mongoose承诺不传递数据到下一个链
- Youtube API在node.js Express中使用asynchronous来处理多个相关请求
- 如何根据在Node.JS中是$ regex还是$ text来对Mongoose结果进行sorting?
- Node.js Express / less-middleware&Bootstrap 3
- 如何hook / monkey-patch基本的Error类
- gm为node.js:只有在图像大于目标大小时才resize
- 如何使用node-email-templates作为initialize / act风格对象?