selenium:找到正确的按钮但无法通过使用className单击

时间:2015-04-01 20:42:15

标签: html selenium xpath selenium-webdriver

我试图通过两种方式找到按钮。第一个由xpath直接工作。但第二种方式不起作用。使用click()函数后,没有任何反应,没有错误。

第一种方式:

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>

顺便说一句:

我尝试使用xpath查找不同的项目,我得到了:

使用'sumbit'作为关键词可以找到它,但是与By.className(“iceCmdBtn”)相同但查找但是没有动作......

  String xpathLocater = ".//*[@type='submit']"; 
  driver.findElement(By.xpath(xpathLocater)).click();

对于'是',我找错了找到元素......

String xpathLocater =“.//* [@ value ='Yes']”;       driver.findElement(By.xpath(xpathLocater))点击();

专家!!!

它有另一个按钮:

所以我想我需要使用FindElements

1 个答案:

答案 0 :(得分:2)

假设您的示例中id的动态部分为300,您可以使用starts-with()应用部分检查:

By.xpath(".//input[starts-with(@id, 'app:viewAppInsideConfirm:confirmInside:') and @class='iceCmdBtn']").click()