#javascript #xpath #selenium-webdriver #web-scraping
#javascript #xpath #selenium-webdriver #очистка веб-страниц
Вопрос:
Я пытаюсь следующий код переместить в фрейм, а затем получить содержимое, но он возвращает пустой документ содержимого.
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);
Также, если вы можете подсказать мне, как я могу перейти к фрейму, а затем получить его содержимое через узлы.У Iframe нет идентификатора, имени и т. Д., Поэтому я использовал способ xpath.Он обнаруживает фрейм как результирующий XPathResult, но я не уверен, как перейти в него, а затем извлечь текст для различных узлов.Это должно быть на Javascript.
Ответ №1:
Было бы проще помочь вам, если бы вы предоставили некоторый html с iframes, но попробуйте следующий код. Это может быть достигнуто только с помощью 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();
Я надеюсь, что это поможет!!