Java Selenium:如何将id或类与特定div关联?
我试着在询问之前搜索,但我没有找到(或理解)我的问题的正确答案 我正在测试一些图表(由Highcharts 6提供支持)。我在同一个url上有6个不同的图表。每一个都在一个Java Selenium:如何将id或类与特定div关联?,java,selenium,testing,highcharts,katalon-recorder,Java,Selenium,Testing,Highcharts,Katalon Recorder,我试着在询问之前搜索,但我没有找到(或理解)我的问题的正确答案 我正在测试一些图表(由Highcharts 6提供支持)。我在同一个url上有6个不同的图表。每一个都在一个div容器中,容器中有不同的元素(按钮等) 所有按钮的类别和/或ID都相同。 例如,这是图表1的最大化/最小化按钮: <a class="has-tooltip btn btn-default change" role="button" title="" id="table" data-original-title="T
div
容器中,容器中有不同的元素(按钮等)
所有按钮的类别和/或ID都相同。例如,这是图表1的最大化/最小化按钮:
<a class="has-tooltip btn btn-default change" role="button" title="" id="table" data-original-title="TEXT">
<span class="fa fa-lg ik-wi-icon-th"></span></a>
这个[2]
是从哪里来的?如何告诉Selenium我要单击哪个按钮?这个
2
来自HTML中的第二个//a[@id='table']/span
假设您有6个图形,它们都有一个与id='table'
的链接,并且它们下面都有一个span,这意味着//a[@id='table']/span
将返回6个元素。使用xpath,只有在确定图形的顺序不会改变时,才可以说单击第一个图形:
driver.findElement(By.xpath("//a[@id='table']/span")).click();
第二:
driver.findElement(By.xpath("(//a[@id='table']/span)[2]")).click();
第三:
driver.findElement(By.xpath("(//a[@id='table']/span)[3]")).click();
等等
当然,在你想测试的页面上点击chrome中的F12。然后转到控制台,并输入以下类型:
$x("//a[@id='table']/span")
它可能会返回6个元素。当您打开这些元素并将鼠标悬停在其上时,Chrome将高亮显示找到的元素。现在,如果您希望找到第五个元素Chrome,请在控制台中键入:
$x("(//a[@id='table']/span)[5]")
现在看看返回的元素是否是页面上的第五个元素。我已经在您的问题中添加了
katalon studio
标记。可能有更熟悉卡塔隆工作室的人能更好地指导你。。HTML标记中使用的ID必须是唯一的,因为它们用于精确标识一个DOM元素。在这里,它们被标记为表
。如果要标识多个DOM元素,请使用类
。您好,谢谢您的快速回答!希望有人谁掌握了卡塔隆可以帮助我!关于类和ID,所有的按钮都在相同的HTML中,具有相同的类和ID,正如您在我发布的代码中所看到的,那么我如何区分它们呢?还是同一个问题…@GinoMempin是否有理由放弃标签katalon studio
as OP的问题是基于katalon Recorder的?我遗漏了什么吗?@DebanjanB嗯……我不是故意删除你添加的标签,我肯定我只是编辑了内容。不过我确实收到了一条消息,其他人进行了编辑,我的编辑只有在内容更“充实”时才会被保存。我不确定,也许是因为我们的编辑不正确?无论如何,如果我的编辑删除了你的标签,我很抱歉。(不过我没有代表马上把它放回去。)非常感谢!!
$x("//a[@id='table']/span")
$x("(//a[@id='table']/span)[5]")