通过在SeleniumWebDriver的Javascript执行器中使用Javascript XPATH获取iframe内容

通过在SeleniumWebDriver的Javascript执行器中使用Javascript XPATH获取iframe内容,javascript,xpath,selenium-webdriver,web-scraping,Javascript,Xpath,Selenium Webdriver,Web Scraping,我正在尝试以下代码移动到框架,然后获取内容,但它返回的是空内容文档 var iframe = document.evaluate('//iframe[contains(@src, \"//my.leadpages.net/forms/5620062778032128/5654100301578240/5645914630782976/html/?lp-in-iframe=1\")]',document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, nul

我正在尝试以下代码移动到框架,然后获取内容,但它返回的是空内容文档

var iframe = document.evaluate('//iframe[contains(@src, \"//my.leadpages.net/forms/5620062778032128/5654100301578240/5645914630782976/html/?lp-in-iframe=1\")]',document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).contentDocument;alert(iframe);

另外,如果您可以指导我如何移动到框架,然后通过节点获取其内容。如果框架没有id,名称等,所以我使用了xpath方法。它将帧检测为结果XpathResult,但我不确定如何移动到其中,然后为各个节点提取文本。这必须是Javascript。

如果您提供一些带有iFrame的html,则会更容易帮助您,但请尝试以下代码。它只能用JAVA实现,不需要javascript

driver.switchTo().frame(driver.findElement(By.xpath("frame xpath expression here")));
//do your stuff here.
//to get the content of this frame, it depends on the structure of the html
//if content is within some div then simply do this.
//this would be the css selector for some DIV where the content is inside the iframe:     
//div#divContentID
WebElement divContent=driver.findElement(By.cssSelector("div#divContentID"));
String content=divContent.getText();
//to switch out of the iframe back to the main content.
driver.switchTo().defaultContent();
我希望有帮助