我需要从表“ td”中获取结果。但是在执行此操作之前,我需要浏览包含它的框架。框架是属于mainFrame的框架集元素之一。我尝试使用所有类型的导航“子”子帧,但均不起作用:
driver.switchTo().defaultContent(); Thread.sleep(1000); driver.switchTo().frame("mainFrame.0.fr_resultsNav~ResultsMaxGroupTemplate0.9766101221774707"); driver.switchTo().frame("main.Frame.1.fr_resultsNav~ResultsMaxGroupTemplate0.8811790466176727"); // even: driver.switchTo().frame("mainFrame.0.fs_main");
以下是该网页的简要布局:
<frame src="banner.asp" name="topFrame" scrolling="no" noresize="noresize" id="topFrame" title="topFrame"> <frame src="" name="mainFrame" id="mainFrame" title="mainFrame" wd_frame_id_="5f4c10bc7e0960070bfda831655b8b0c"> <frameset id="fs_main" border="0" frameborder="no" framespacing="0" rows="70,87,*"> ..................... <frameset id="fs_content" cols="23%,*" framespacing="0" frameborder="no"> ..................... <frameset cols="*,9" id="LeftFrameSet" framespacing="0" frameborder="no"> ..................... <frame frameborder="0" name="fr_classification~ResultsMaxGroupTemplate0.609021034867735" title="Results Classification Frame" id="fr_classification~ResultsMaxGroupTemplate0.609021034867735" src="/lnacui2api/results/shared/waitMessage.do?wmibIdRand=61_T16938265013_rand_1363544453847" scrolling="Auto" onload="paintResultsBorder('ResultsMaxGroupTemplate0.609021034867735');"> .................... <form name="results_listview_ResultsListForm" method="post" action="/lnacui2api/results/listview/listview.do" id="results_listview_ResultsListForm"> .......... <td nowrap="" height="20"> <span id="new"> All Results</span> (294)</td> </form> ....................
在导航子帧之前是否需要导航框架集?我阅读了文档。所有的Internet示例都给出了一个简单的示例代码:driver.switchTo()。frame(“ mainFrame.0.child”)。在这种情况下不起作用。请看一下上面的脚本。
我同意,您不能直接切换到子框架。另外,每次要切换框时,请确保切换到defaultContent(driver.switchTo.defaultContent)。对于您的示例,driver.switchTo().frame("mainFrame.0.child")-–也可以,但是您需要除去不必要的引号。
defaultContent
driver.switchTo.defaultContent
driver.switchTo().frame("mainFrame.0.child")