Java 如何判断单击了哪个按钮?
我有一个表,其中有一些条目的名称。在每个名字我都有编辑按钮。我的问题是,所有的编辑按钮都有相同的idJava 如何判断单击了哪个按钮?,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] 首先
你知道我如何点击编辑按钮的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处单击按钮