我有我的html代码如下所示:
<div id="food-search-all" class="fd_food_search_all fd_loading" style="display: block;"> <ul class="fd-breadcrumbs" > <li> <a href="Javascript://" class="breadcrumb">Baked beans</a> </li> </ul> <div class="fd-search-results"><table class="results ib-list" cellpadding="0" cellspacing="0" border="0"> <tbody> <tr class="foods foods_s-fndds244535"> <td class="name"> <a href="Javascript://">Baked beans</a> </td> <td class="default-amount"> </td> </tr> <tr class="foods foods_s-fndds244535"> <td class="name"> <a href="Javascript://">Chickens</a> </td> <td class="default-amount"> </td> </tr> <tr class="foods foods_s-fndds244535"> <td class="name"> <a href="Javascript://">Cow milk</a> </td> <td class="default-amount"> </td> </tr> </tbody> </table></div> </div>
我如何单击Baked beans表/ tr / td / a中的文本
Baked beans
我尝试下面的代码,
driver.findElement(By.xpath("/table[contains(@class,'results ib-list')]/tbody/tr/td[@class = 'name']/a[contains(text(),"+linktext+")]")).click();
但其显示异常:
org.openqa.selenium.InvalidSelectorException: The given selector
您的代码中有小错误,在文本中缺少’‘ "+linktext+":
"+linktext+"
driver.findElement(By.xpath("/table[contains(@class,'results ib-list')]/tbody/tr/td[@class = 'name']/a[contains(text(),'"+linktext+"')]")).click();
NoSuchElementException通常表示元素处于中frame,或加载缓慢。硒仅与当前框架中的元素相互作用。在frame您切换到子元素之前,子元素中的任何元素都无法与之交互frame。您可以使用switchTo().frame()以下命令进行切换:
NoSuchElementException
frame
switchTo().frame()
driver.switchTo().frame(ARG);
的参数frame()是
frame()
webelement
在中完成后iframe,请使用以下命令退出文档顶部:
iframe
driver.switchTo().defaultContent();