<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'
有人可以帮我吗?
答案 0 :(得分:1)
如果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();
答案 1 :(得分:1)
你从不希望匹配这样的ID。我推荐的是匹配一些更“独特”的东西。
尝试:
By.cssSelector("input[type='checkbox'][title='Select this email']")
上面的这个选择器将完全匹配您的<input/>
。并且,它没有与Yahoo UI结合使用,因此如果您或您的开发人员更换软件,它将会解释这一点。
答案 2 :(得分:0)
您必须使用id获取元素并单击。它类似于按钮点击
driver.findElement(By.id("yui_3_16_0_1_1399697074576_1338")).click();