Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html selenium:找到正确的按钮,但使用className单击失败_Html_Selenium_Xpath_Selenium Webdriver - Fatal编程技术网

Html selenium:找到正确的按钮,但使用className单击失败

Html selenium:找到正确的按钮,但使用className单击失败,html,selenium,xpath,selenium-webdriver,Html,Selenium,Xpath,Selenium Webdriver,我试着用两种方法找到按钮。第一种方法是直接使用xpath,这是有效的。但第二种方法不起作用。使用click()函数后,不会发生任何事情,也不会出现任何错误 第一种方式: By.xpath(".//*[@id='app:viewAppInsideConfirm:confirmInside:j_id300']").click() 第二种方式: By.className("iceCmdBtn").click() html: 对于“是”,我在查找元素时出错 字符串xpathLocater=“../*

我试着用两种方法找到按钮。第一种方法是直接使用xpath,这是有效的。但第二种方法不起作用。使用click()函数后,不会发生任何事情,也不会出现任何错误

第一种方式:

By.xpath(".//*[@id='app:viewAppInsideConfirm:confirmInside:j_id300']").click()
第二种方式:

By.className("iceCmdBtn").click()
html:

对于“是”,我在查找元素时出错

字符串xpathLocater=“../*[@value='Yes']”; findElement(By.xpath(xpathLocater)).click()

伙计们

它还有一个按钮:


因此,我想我需要使用FindElements

假设
id
的动态部分是
300
,在您的示例中,您可以使用以下方法应用部分检查:


如果它通过xpath工作,为什么不直接使用xpath呢?因为id会改变,这就是您正在使用的驱动程序上的dynamicWhich find方法
FindElement
FindElement
?如果您使用的是第一种方法,那么驱动程序将在找到的第一个元素上停止。可能
Driver.FindElements(By.ClassName(“iceCmdBtn”))。首先(e=>e.displated)。单击()
会有帮助吗?(顺便说一下,语法)请检查有多少元素附加到classname
iceCmdBtn
。该类可能被多个元素使用。我选中了,该类名只有一项。@Chen好的,更新了xpath,添加了
输入
,而不是
*
,并检查了该类。查看它。Thank~与字符串xpathLocater一起使用=“//输入[以(@id,'app:viewAppInsideConfirm:confirmInside:j_id')开头];
<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>
  String xpathLocater = ".//*[@type='submit']"; 
  driver.findElement(By.xpath(xpathLocater)).click();
By.xpath(".//input[starts-with(@id, 'app:viewAppInsideConfirm:confirmInside:') and @class='iceCmdBtn']").click()