Selenium自动化测试脚本的新手,尝试创建一个确定性脚本来测试受密码保护的网站。我可以调出登录页面并发送用户/传递值并单击登录按钮而不会出现问题,但是,在该步骤之后,我的脚本错误地指出无法找到元素。我试图利用wait / until方法确定元素是否可用,然后再与它们进行交互。
下面是一个精简代码示例,用于说明我的方法。
driver.get('https://somedomain.com/folders/login.php');
driver.wait(until.titleIs('Login Page'), 1 * 60 * 1000);
driver.wait(until.elementLocated(By.id('input1'), 1 * 60 * 1000)).then(driver.findElement(By.id('input1')).sendKeys('XXXXX'));
driver.wait(until.elementLocated(By.id('input2'), 1 * 60 * 1000)).then(driver.findElement(By.id('input2')).sendKeys('XXXXX'));
driver.findElement(By.id('inputBtn')).click();
driver.wait(until.titleIs('Selection page'), 5 * 60 * 1000);
driver.wait(until.elementLocated(By.id('input3'), 5 * 60 * 1000));
driver.wait(until.elementIsNotVisible(driver.findElement(By.id('cssLoader'))), 5 * 60 * 1000);
driver.findElement(By.id('input3')).click();
我收到以下错误:
(node:1452) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":"*[id="cssLoader"]"}
(node:1452) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":"*[id="input3"]"}
在登录过程完成之前,我在控制台中看到了错误。我以前增加了所有的等待时间,认为这是问题的一部分,但似乎并非如此。