Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.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
Java 如何判断单击了哪个按钮?_Java_Selenium_Button - Fatal编程技术网

Java 如何判断单击了哪个按钮?

Java 如何判断单击了哪个按钮?,java,selenium,button,Java,Selenium,Button,我有一个表,其中有一些条目的名称。在每个名字我都有编辑按钮。我的问题是,所有的编辑按钮都有相同的id 你知道我如何点击编辑按钮的10。例如,表中的人?您可以使用CSS选择器并使用第n个子属性。例如,在stackoverflow主页上,您可以使用以下CSS选择器选择第二个问题: .container .question-summary:nth-child(2) 您还可以使用XPath。同一元素的XPath为: //div[@class='question-summary']/div[2] 首先

我有一个表,其中有一些条目的名称。在每个名字我都有编辑按钮。我的问题是,所有的编辑按钮都有相同的id


你知道我如何点击编辑按钮的10。例如,表中的人?

您可以使用CSS选择器并使用第n个子属性。例如,在stackoverflow主页上,您可以使用以下CSS选择器选择第二个问题:

.container .question-summary:nth-child(2)
您还可以使用XPath。同一元素的XPath为:

//div[@class='question-summary']/div[2]

首先,如果每个按钮都有相同的ID,根据HTML规范,这是错误的。每个ID对于页面都应该是唯一的。如果无法使ID唯一,则可能应该删除该ID

您所需要的似乎可以通过使用XPATH来实现

例如,您可以使用以下内容:

//表[@class='myTableClass']/tr[10]/td[4]/input

如果要搜索特定值,可以使用“包含”:

//表[@class='myTableClass']//td[contains.,'ABC']../td[5]

这样做的目的是搜索值为ABC的表格单元格,然后选择该单元格的父单元格(行),然后选择该行的第5个单元格。使用Xpath可以做很多事情


有关Xpath的更多信息,请参见。

我们在使用Selenium时遇到了一个相关问题,不同之处在于我们不知道支持Ajax的组件的id属性的值。这是因为我们使用Wicket,在这种情况下它会生成动态ID


我所做的是让Wicket添加一个name属性,并让Selenium选择该属性而不是id。

您关于id的说明是正确的。不过要补充的是,有时您无法按ID进行选择。例如,使用Sencha Touch/ExtJS,ID会动态变化。是的,现在我有了它。使用XPATH,我可以在我的表tr[10]/td[4]中找到任何botton。如果我想搜索姓名ABC,然后自动单击人员ABC的编辑按钮,该如何操作;Target:css=a:containsedit;它从列表中剪切第一个编辑按钮。请告诉我的工作人员,我可以告诉selenium点击列表中ABC的按钮,问这个问题的人应该在ID上使用姓名。他的主要问题不是Selenium,而是缺乏基本的XML知识和HTML,否则他会理解他得到的XPath建议……命令:单击;Target:css=a:containsedit;它从列表中剪切第一个编辑按钮。请告诉我的工作人员,我可以告诉selenium单击列表中ABC人的按钮。是的,现在我有了。使用XPATH,我可以在我的表tr[10]/td[4]中找到任何botton。如果我想搜索姓名ABC,然后自动单击人员ABC的编辑按钮//div[containstext,ABC]或CSS div:containsABCCommand:click;Target://tr[3]/td[9]/div/table/tbody/tr/td/a;使用tihs target,我可以单击表中人员[3]的编辑按钮。我怎样才能找到一个想要编辑的人//目标上的div[containstext,ABC]不起作用。抱歉再次询问命令:单击;Target:css=a:containsedit;它从列表中剪切第一个编辑按钮。请告诉我的工作人员,我可以告诉selenium从列表中的人员ABC处单击按钮