2015-10-28 89 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並不允許點擊。我一定弄糊塗了一個不同的錯誤。 –