我尽量避免在我的测试代码中引入不确定性,避免使用driver.sleep(如本博客:https://medium.freecodecamp.org/how-to-write-reliable-browser-tests-using-selenium-and-node-js-c3fdafdca2a9所示)。
使用测试运行程序,我在登录表单上重复运行测试用例,重复大约10次(不调用driver.quit()
),如下所示:
async function doLogin(driver, testcase) {
try {
let username = testcase.input.username;
let password = testcase.input.password;
let loginInput = await driver.wait(until.elementLocated(By.id('loginId')),2000);
loginInput = await driver.wait(until.elementIsVisible(loginInput), 20000);
await loginInput.clear();
await driver.sleep(1000);
logger.info("Entering username:%s", username);
await loginInput.sendKeys(username);
logger.info("Entering password:%s", password);
let passwdInput = await driver.wait(until.elementLocated(By.id('password')),2000);
passwdInput = await driver.wait(until.elementIsVisible(passwdInput), 20000);
await passwdInput.clear();
await driver.sleep(1000);
await passwdInput.sendKeys(password, Key.RETURN) ;
} catch(e) {
logger.error("Error in doLogin:%s", e.toString());
}
}
呼叫代码。。。
testLogin: async function(testcase) {
try {
logger.info("Loading page: %s...", URL);
await driver.get(URL);
await doLogin(driver, testcase);
上面的代码试图清除输入/密码字段,输入新数据并单击登录按钮。虽然我已经注意到要等到元素定位,直到元素可见,但似乎我无法可靠地清除输入字段并输入数据。因此,我看到随机测试(大约50%)由于用户名和密码不正确而失败。
通过添加驱动程序,可以克服这种不一致性。sleep()
,位于元素之后。清除()
。所以,我仍然需要依赖驱动程序。sleep()
。
是否有可靠的方法实现自动化,而无需借助驱动程序。sleep()
?
PS:我用的是chrome驱动程序和硒WebDrive 4.0.0-alpha.1
您正在异步运行测试。这意味着所有10个测试用例都在争夺输入字段的控制权。尝试删除“async”,然后依次运行10个测试用例。
如何避免在HTML5中输入数字的十进制值。目前,它允许用户键入十进制值。
本文向大家介绍避免在MongoDB中重复输入?,包括了避免在MongoDB中重复输入?的使用技巧和注意事项,需要的朋友参考一下 为了避免在MongoDB中重复输入,可以使用。语法如下- 让我们实现以上语法。避免在MongoDB中重复条目的查询如下- 现在在上面的集合中插入一些记录。插入记录的查询如下- 每当您尝试再次插入相同记录时,都会出现此错误- 让我们插入另一条记录。查询如下- 在method
问题内容: 我是mongodb的新手。我可以知道如何避免重复输入。在关系表中,我们使用主键来避免它。我可以知道如何使用Java在Mongodb中指定它吗? 问题答案: 在选项中使用索引。 您也可以跨多个字段执行此操作。 有关 更多详细信息和示例, 请参阅 文档中的 此部分 。 MongoDB索引可以有选择地施加一个 唯一的键约束 ,以确保不会插入任何索引键值与现有文档值匹配的文档。 如果希望从唯一
我正在尝试自动化电子邮件注册。当我手动操作时,它会工作,但当我用selenium打开网站时,它不会工作。它有我不能做的验证。有没有一种方法可以在不被检测的情况下打开(而不是控制,我使用pyautogui)一个网站? 我的代码:
我有一个简单的项目,该项目将个人信息提供给数据库(sqlite),现在我想避免插入重复值(按名称),我不能做什么?谢谢你们
问题内容: 我遇到一种情况(在硒测试期间),在这种情况下,用户将收到安全代码。然后,用户必须先输入安全密码,然后才能继续操作。 我不太确定如何获得用户输入的值。我浏览了硒文档,并提出了这个建议。不幸的是,它并不是很有效。 有人可以指出我正确的方向吗? 问题答案: 似乎您必须先接受并关闭提示,然后才能存储和使用该值