Selenium - 设置切换

标签 selenium xpath

我正在尝试对我公司的产品进行自动化测试。他们使用一种切换开关。我有 HTML 和下面的切换图像。我在 https://stackoverflow.com/a/24682401/901083 找到了一个看似答案,生成 //div[@class='toggle btn btn-default off btn-sm'] 的 XPath 代码,但单击后该 div 会更改为“toggle btn btn-sm btn-primary”并且当它回来时再次“切换 btn btn-sm btn-default off”。无论其设置如何,我通常如何引用该 div?

HTML

<div style="width: 80px; height: 30px;" class="toggle btn btn-default off btn-sm" data-toggle="toggle">
    <input data-off="O" data-on="I" data-size="small" data-toggle="toggle" data-val="true" data-val-required="The OptInReceiveEmail field is required." 
        data-width="80px" id="OptInReceiveEmail" name="OptInReceiveEmail" tabindex="0" value="true" type="checkbox">
    <div class="toggle-group">
        <label class="btn btn-primary btn-sm toggle-on">I</label><label class="btn btn-default btn-sm active toggle-off">O</label>
        <span class="toggle-handle btn btn-default btn-sm"></span>
    </div>
</div>

图片
enter image description here

最佳答案

假设页面上没有其他切换按钮,您可以检查 data-toggle 属性是否存在:

//div[@data-toggle]

如果还有其他切换按钮并且您需要此特定的“电子邮件”切换:

//div[@data-toggle][input/@id = "OptInReceiveEmail"]

关于Selenium - 设置切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33398156/

相关文章:

javascript - 属性错误 : 'WebDriver' object has no attribute 'manage' 的问题

Java Selenium 选择

xml - 如何使用 xslt 从文档方法中删除节点

java - 无法使用 Selenium webdriver Java 单击按钮

mysql - 根据另一个子标签的值获取子标签的值

python Selenium "Chrome is being controlled by automated test software"

java - 使用 selenium web 驱动程序可以在单个单元格中打印多个值

java - Selenium Standalone 已退出,代码为 1/系统找不到指定的路径

python - WebDriver异常: Chrome failed to start: exited abnormally (unknown error: DevToolsActivePort file doesn't exist)

xml - XPath 1.0 检查计数