我试图通过使用两种方式找到按钮。第一个由xpath直接工作。但第二种方式不起作用。使用click()函数后没有任何事情发生,也没有错误。selenium:找到正确的按钮,但未能通过使用类名称单击
第一种方式:
By.xpath(".//*[@id='app:viewAppInsideConfirm:confirmInside:j_id300']").click()
方式二:
By.className("iceCmdBtn").click()
HTML:
<input id="app:viewAppInsideConfirm:confirmInside:j_id300" class="iceCmdBtn" type="submit" value=" Yes " onfocus="setFocus(this.id);" onclick="parent.JSsessionTimeOut.resetSessionTimeout();iceSubmit(form,this,event);return false;" onblur="setFocus('');" name="app:viewAppInsideConfirm:confirmInside:j_id300"></input>
BTW:
我尝试使用XPath来查找不同的项目,我得到:
使用“透过”为关键字可以找到它,但同为By.className(“iceCmdBtn”)找到,但与点击()不采取行动......
String xpathLocater = ".//*[@type='submit']";
driver.findElement(By.xpath(xpathLocater)).click();
为“是” ,我找到错误元素...
String xpathLocater =“.//*[@value='Yes']”; driver.findElement(By.xpath(xpathLocater))。click();
伙计们!
它有另一个按钮:
所以我想我需要使用FindElements
如果它通过xpath工作,为什么不只是使用xpath? – 2015-04-01 20:43:06
因为id会改变,所以这是动态的 – Peter 2015-04-01 20:45:43
哪个在您使用的Driver上找到方法? FindElement或FindElements?如果您正在使用第一种方法,则驱动程序停止在第一个找到的元素上。也许'Driver.FindElements(By.ClassName(“iceCmdBtn”))。First(e => e.Displayed).Click()'可以帮助吗? (顺便说一下C#语法) – core 2015-04-01 22:12:01