Javascript 需要为过滤器图标编码的建议吗
我需要用SeleniumWebDriveJava编写以下代码。我正在使用JavaEclipse。我正在尝试查找筛选器菜单的元素。单击过滤器图标后,将显示过滤器菜单。当我试图通过使用firebug单击过滤器图标来查找元素时,下面的代码被突出显示Javascript 需要为过滤器图标编码的建议吗,javascript,java,selenium,selenium-webdriver,selenium-chromedriver,Javascript,Java,Selenium,Selenium Webdriver,Selenium Chromedriver,我需要用SeleniumWebDriveJava编写以下代码。我正在使用JavaEclipse。我正在尝试查找筛选器菜单的元素。单击过滤器图标后,将显示过滤器菜单。当我试图通过使用firebug单击过滤器图标来查找元素时,下面的代码被突出显示span class=“k-icon k-filterxpath也不起作用 <th class="k-header k-filterable k-with-icon" scope="col" data-title="Package Detail" da
span class=“k-icon k-filter
xpath也不起作用
<th class="k-header k-filterable k-with-icon" scope="col" data-title="Package Detail" data-index="0" data-field="PackageDetail.Namee" data-role="columnsorter">
<a class="k-grid-filter" href="javascript:void(0)" tabindex="-1">
<span class="k-icon k-filter"/>
</a>
<a class="k-link" href="/Valiadationrule/GetData?ValiadationruleGrid-sort=PackageDetail.Namee-asc">Package Detail</a>
</th>
<th class="k-header k-filterable k-with-icon" scope="col" data-title="Category" data-index="1" data-field="Category" data-role="columnsorter">
<a class="k-grid-filter" href="javascript:void(0)" tabindex="-1">
<span class="k-icon k-filter"/>
</a>
<a class="k-link" href="/Valiadationrule/GetData?ValiadationruleGrid-sort=Category-asc">Category</a>
</th>
<th class="k-header k-filterable k-with-icon" scope="col" data-title="Name" data-index="2" data-field="Name" data-role="columnsorter">
<a class="k-grid-filter" href="javascript:void(0)" tabindex="-1">
<span class="k-icon k-filter"/>
</a>
<a class="k-link" href="/Valiadationrule/GetData?ValiadationruleGrid-sort=Name-asc">Name</a>
</th>
尝试以下任一Java代码,单击第一个过滤器图标“Package Detail”: 它将选择带有标记
a
的元素,并将确切的innerHTML/文本作为包详细信息
或
//a[contains(@href,'PackageDetail')]
它将选择带有标记a
的元素和包含文本PackageDetail
的href
属性
编辑 根据最新的图片,我已经找出了问题所在。实际上,整个网格位于一个id为
bodyframe
的框架内。因此,在单击过滤器图标之前,必须首先切换到该框架
1-切换到帧:
driver.switchTo().frame("bodyframe");
driver.findElement(By.xpath("//a[contains(@href,'PackageDetail')]/preceding-sibling::a")).click();
2-单击过滤器图标:
driver.switchTo().frame("bodyframe");
driver.findElement(By.xpath("//a[contains(@href,'PackageDetail')]/preceding-sibling::a")).click();
或
或
尝试以下任一Java代码,单击第一个过滤器图标“Package Detail”: 它将选择带有标记
a
的元素,并将确切的innerHTML/文本作为包详细信息
或
//a[contains(@href,'PackageDetail')]
它将选择带有标记a
的元素和包含文本PackageDetail
的href
属性
编辑 根据最新的图片,我已经找出了问题所在。实际上,整个网格位于一个id为
bodyframe
的框架内。因此,在单击过滤器图标之前,必须首先切换到该框架
1-切换到帧:
driver.switchTo().frame("bodyframe");
driver.findElement(By.xpath("//a[contains(@href,'PackageDetail')]/preceding-sibling::a")).click();
2-单击过滤器图标:
driver.switchTo().frame("bodyframe");
driver.findElement(By.xpath("//a[contains(@href,'PackageDetail')]/preceding-sibling::a")).click();
或
或
似乎有多个
标记可能是您的问题的原因。您能从上面告诉我您要查找和/或单击哪个筛选器图标吗?我想使用第一个筛选器包详细信息,就像有多个
标记可能是您的问题的原因一样。您能从上面告诉我您要查找和/或单击哪个筛选器图标吗要定位和/或单击的r图标?我想使用第一个筛选器包详细信息感谢您的更新,但它不起作用我收到错误消息,因为无法定位元素在这种情况下,请尝试以下XPath之一//th[@data title='Package Detail']
或//th[@data title='Package Detail']//span[@class='k-icon k-filter']
。如果仍然不起作用,请添加到您的问题中。需要查看筛选器的外观,可能会更容易将此筛选器排序出来。您好,仍然不起作用,谢谢..从屏幕截图上看,上面的代码(在注释中)似乎应该起作用。无论如何,您可以尝试以下XPath之一://a[包含(@href,'PackageDetail')]/前面的同级::a
或//th[@data title='Package Detail']//span[@class='k-icon k-filter']/..
好的..您能告诉我您遇到了什么错误/异常吗?您好,谢谢您的更新,但它不起作用。我收到错误消息,因为无法找到元素。在这种情况下,请尝试以下XPath//th[@data title='Package Detail']
或//th[@data title='Package Detail']//span[@class='k-icon k-filter']
。如果仍然不起作用,请添加到您的问题中。需要查看筛选器的外观,可能会更容易将此筛选器排序出来。您好,仍然不起作用,谢谢..从屏幕截图上看,上面的代码(在注释中)似乎应该起作用。无论如何,您可以尝试以下XPath之一://a[包含(@href,'PackageDetail')]/前面的同级::a
或//th[@data title='Package Detail']///span[@class='k-icon k-filter']]/..
好的..你能告诉我你得到了什么错误/异常吗?