簡體   English   中英

如何使用selenium單擊復選框

[英]How to click a checkbox using selenium

<div id="yui_3_16_0_1_1399697074576_1339" class="cbox " role="gridcell">
<input id="yui_3_16_0_1_1399697074576_1338" type="checkbox" tabindex="-1" 89513626107905="" aria-label="Message " title="Select this email">
<span id="yui_3_16_0_1_1399697074576_1340" class="icon"></span>
</div>`

上面的HTML來自firebug。

我想點擊復選框,其ID是上面的id="yui_3_16_0_1_1399697074576_1338" 我嘗試使用by.idby.path ,但是它們都不起作用。 以下是我嘗試的內容:

By.id("yui_3_16_0_1_1399697074576_1338")
By.xpath("//input[@id='yui_3_16_0_1_1399697074576_1339'

有人可以幫我嗎?

如果id是靜態的:

 string checkboxXPath = "//input[contains(@id, 'yui_3_16_0_1_1399697074576_1338')]"

對於動態標簽值:

           string checkboxXPath = "//input[contains(@type,'checkbox') and                       
          contains(@title,'Select this email')]"

IWebElement elementToClick = driver.FindElement(By.XPath(checkboxXPath));
elementToClick.Click();

永遠不想匹配這樣的ID。 我推薦的是匹配更“獨特”的東西。

嘗試:

By.cssSelector("input[type='checkbox'][title='Select this email']")

上面的這個選擇器將完美匹配您的<input/> 並且,它沒有與Yahoo UI結合,因此如果您或您的開發人員更換軟件,它將解釋這一點。

您必須使用id獲取元素並單擊。 它類似於按鈕點擊

driver.findElement(By.id("yui_3_16_0_1_1399697074576_1338")).click();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM