2015-10-28 59 views
2

我试图自动化测试我公司的产品。他们使用一种切换。我有HTML和下面的切换图片。我在https://stackoverflow.com/a/24682401/901083找到了一个看似可以回答的问题,产生XPath代码//div[@class='toggle btn btn-default off btn-sm'],但是一旦点击它,div会变为“toggle btn btn-sm btn-primary”,当它返回时会再次“切换btn btn-sm btn-default off” 。无论设置如何,我通常都会提及该div。Selenium - 设置开关

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

+0

对不起。我转移到项目的另一部分,没有机会尝试解决方案。周一上班时我会再去看看。 –

回答

3

假设有在网页上没有其他的切换按钮,就可以,例如,检查data-toggle属性的存在:

//div[@data-toggle] 

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

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

这有效。出于某种原因,我认为瞄准Div并不允许点击。我一定弄糊涂了一个不同的错误。 –