gpt4 book ai didi

java - Selenium Java 对象动态更改位置

转载 作者:行者123 更新时间:2023-12-02 09:32:33 24 4
gpt4 key购买 nike

enter image description here用户分为 3 类:授权用户、非授权用户和总用户。可以通过 UI 创建用户,默认情况下用户将显示在“未授权”部分。 3 个页面部分中的每个部分都有一个可供用户使用的切换按钮。当用户从“非授权”部分单击用户的切换按钮时,用户条目将进入“授权”页面。

自动化要求是单击用户的每个切换按钮,检查是否单击了所有按钮,然后导航到页面用户以检查是否添加了所有用户。

问题是,当任何用户单击切换按钮时,顶部/底部记录 HTML 位置将被替换为前一个位置。例如:如果第一个切换按钮的路径是//[@id='xyz']/td 1并且用户单击此切换按钮,下一个用户记录切换按钮路径现在变得与上面相同,即//[@id='xyz']/td 1

下面是切换开关的html代码: <span class="bootstrap-switch-handle-off bootstrap-switch-default" style="width: 20px;"></span>

我尝试在每次单击切换按钮后添加 Thread.sleep() ,以便有延迟,然后我的代码可以使用相同的路径单击下一个切换开关,但想知道是否有优化的方法来处理这种情况。

有什么建议吗?

最佳答案

尝试单击第一个切换并等待它在任何切换存在条件的 while 循环内消失:

WebDriverWait wait = new WebDriverWait(driver, 10);
while (driver.findElements(By.cssSelector(".bootstrap-switch-handle-off")).size() > 0) {
WebElement toggle =
wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector(".bootstrap-switch-handle-off")));
toggle.click();
//wait.until(ExpectedConditions.invisibilityOf(toggle));
wait.until(d -> {
try {
return !toggle.isDisplayed();
} catch (StaleElementReferenceException ignored) {
return true;
}
});
}

关于java - Selenium Java 对象动态更改位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57835141/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com