Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SeleniumJava对象动态更改位置_Java_Selenium_Automation_Ui Automation - Fatal编程技术网

SeleniumJava对象动态更改位置

SeleniumJava对象动态更改位置,java,selenium,automation,ui-automation,Java,Selenium,Automation,Ui Automation,有3类用户:授权用户、非授权用户和总用户。用户可以通过UI创建,默认情况下,用户将显示在非授权部分。在3个页面部分中的每个部分都有一个可供用户使用的切换按钮。当用户单击非授权部分用户的切换按钮时,用户条目进入授权页面 自动化要求是单击用户的每个切换按钮,检查是否单击了所有按钮,然后导航到页面用户以检查是否添加了所有用户 问题是,当任何用户单击切换按钮时,顶部/底部记录HTML位置将替换为前面的位置。 例如:如果第一个切换按钮的路径为//[@id='xyz']/td,并且用户单击该切换按钮,则下一

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

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

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

下面是切换开关的html代码:

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


有什么建议吗?

尝试单击“第一个切换”,等待它在任何切换条件下的循环出现时消失:

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;
        }
    });
}

文本格式的html共享代码在单击行
wait.until(ExpectedConditions.invisibilityOfElementLocated(By.cssSelector(“.bootstrap开关手柄关闭”))上的第一个切换后失败。
org.openqa.selenium.TimeoutException:等待元素不再可见10秒后超时:By.css选择器:。引导开关手柄关闭
完全尝试我共享的代码。
wait.until(ExpectedConditions.invisibilityOf(toggle))
不可见性FelementLocated(由.cssSelector(“.bootstrap开关手柄关闭”)。在ExpectedConditions中没有称为invisibilityOf的方法,这是我们所说的自定义方法吗?
import org.openqa.selenium.support.ui.ExpectedConditions中的标准条件