[英]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.id
和by.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.