问题是每次执行测试时都会出现http408错误。当我们手动尝试时,url尝试了很多次都没有问题,甚至其中一个没有收到错误。
Java8ChromeDriver和ChromeBrowser(v86)是pom版本的SeleniumChrome驱动程序 3.141.59Windows10。
失败场景:
输入用户/通行证
单击“回车”按钮
获取408错误太快(20毫秒)(这很奇怪,因为我认为没有任何服务将其超时配置为低于20毫秒)
此外,后端登录服务不会从前端登录服务接收任何登录尝试。
成功情景(在同一设置上执行)
刷新selenium打开的同一页
输入用户/密码
单击“回车”按钮
成功通过测试,我的意思是登录成功,没有得到任何错误。
在后端登录服务日志中可以看到尝试日志
从上面的测试中可以看出,查找username、password和enter元素没有任何错误,不同之处在于谁加载了页面。如果selenium驱动程序加载url,则会出现408错误。如果刷新同一页面然后尝试登录,则登录成功。
我们使用的网址是定向2倍,由于 授权 (ldap登录) 然后是我们需要的主页。
我想我在下面的链接中遇到了这个问题,但是我找不到任何解决办法。
https://sny.no/2018/08/webdriver-keepalive
在selenium更改日志中有一个更新,但我不知道如何使用它。
https://github.com/seleniumhq/selenium/blob/trunk/dotnet/changelog ctrl+f->“iskeepaliveenabled”3.14.0版
2020年12月17日-1
我认为这个问题与http头有关。如果是driver.get(“loginurl”),则登录错误,代码为408。如果我刷新页面,然后在同一浏览器上输入相同的user/pass,那么就成功了。
添加缺少的标题将工作,但我找不到哪一个是丢失的
HTML
-----
<tbody>
<tr>
<td nowrap="" class="LoginLabel">
<!-- Username -->
</td>
<td>
<input type="text" name="username" class="inputlogin" placeholder="Username" value="">
</td>
</tr>
<tr>
<td class="LoginLabel">
<!-- Password -->
</td>
<td>
<input type="password" name="password" class="inputlogin" placeholder="Password" value="">
</td>
</tr>
<tr>
<td class="LoginLabel">
<!-- Password -->
</td>
<td>
<input type="submit" value="Enter" class="lg-form">
</td>
</tr>
</tbody>
提前谢谢
String user = "myuser"
WebElement userElement = driver.findElement(By.cssSelector(USERNAME));
sendKeys(userElement, user);
String pass = "myPass"
WebElement passElement = driver.findElement(By.cssSelector(PASSWORD));
sendKeys(passElement, pass);
Thread.sleep(500);
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath(INPUT_VALUE_ENTER))).click();
暂无答案!
目前还没有任何答案,快来回答吧!