2016-01-15 3 views
0

Цель: веб-страница доступа и AutoClick по ссылке с использованием HtmlUnit и JavaHtmlUnit - Щелчок по ссылке не работает

То, что я пытался: Пробовал нажав на «О» ссылки на google.com сайте.

Код:

import java.io.IOException; 
import java.net.URISyntaxException; 
import java.net.URL; 
import com.gargoylesoftware.htmlunit.WebClient; 
import com.gargoylesoftware.htmlunit.html.HtmlAnchor; 
import com.gargoylesoftware.htmlunit.html.HtmlPage; 

public class autoPEC { 
    public static void main(String[] args) throws IOException, URISyntaxException{ 
     WebClient webClient = new WebClient(); 
     HtmlPage currentPage = webClient.getPage("http://www.google.com/"); 
     HtmlAnchor advancedSearchAn = currentPage.getAnchorByText("About"); 
     currentPage = advancedSearchAn.click(); 
    } 
} 

Результат: Ошибка

Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.javascript.host.html.HTMLElement jsxFunction_addBehavior WARNING: Unimplemented behavior: #default#userdata Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error WARNING: CSS error: [1:546] Error in expression. Invalid token "=". Was expecting one of: , , "/", , "-", , , ")", , "inherit", , , , , , , , , , , , , , , , , , , , . Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error WARNING: CSS error: [1:552] Error in style rule. Invalid token "position". Was expecting one of: "}", ";". Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler warning WARNING: CSS warning: [1:552] Ignoring the following declarations in this rule. Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error WARNING: CSS error: [1:859] Error in expression. Invalid token "=". Was expecting one of: , , "/", , "-", , , ")", , "inherit", , , , , , , , , , , , , , , , , , , , . Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error WARNING: CSS error: [1:1419] Error in style rule. Invalid token ":". Was expecting one of: , "}", , ";", "/", , "-", , , , "!", "inherit", , , , , , , , , , , , , , , , , , , , . Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler warning WARNING: CSS warning: [1:1419] Ignoring the following declarations in this rule. Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error WARNING: CSS error: [1:2203] Error in style rule. Invalid token "". Was expecting one of: , "}", ";", . Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler warning WARNING: CSS warning: [1:2203] Ignoring the following declarations in this rule. Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error WARNING: CSS error: [1:2543] Error in style rule. Invalid token "". Was expecting one of: , "}", ";", . Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler warning WARNING: CSS warning: [1:2543] Ignoring the following declarations in this rule. Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error WARNING: CSS error: [1:2616] Error in style rule. Invalid token "". Was expecting one of: , "}", ";", . Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler warning WARNING: CSS warning: [1:2616] Ignoring the following declarations in this rule. Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error WARNING: CSS error: [1:3194] Error in style rule. Invalid token "". Was expecting one of: , "}", ";", . Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler warning WARNING: CSS warning: [1:3194] Ignoring the following declarations in this rule. Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error WARNING: CSS error: [1:3701] Error in style rule. Invalid token "". Was expecting one of: , "}", ";", . Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler warning WARNING: CSS warning: [1:3701] Ignoring the following declarations in this rule. Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error WARNING: CSS error: [1:3761] Error in style rule. Invalid token "". Was expecting one of: , "}", ";", . Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler warning WARNING: CSS warning: [1:3761] Ignoring the following declarations in this rule. Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error WARNING: CSS error: [1:4196] Error in style rule. Invalid token "". Was expecting one of: , "}", ";", . Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler warning WARNING: CSS warning: [1:4196] Ignoring the following declarations in this rule. Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error WARNING: CSS error: [1:4960] Error in style rule. Invalid token "". Was expecting one of: , "}", ";", . Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler warning WARNING: CSS warning: [1:4960] Ignoring the following declarations in this rule. Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error WARNING: CSS error: [1:5610] Error in pseudo class or element. Invalid token ":". Was expecting one of: , . Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler warning WARNING: CSS warning: [1:5610] Ignoring the whole rule. Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error WARNING: CSS error: [1:6103] Error in style rule. Invalid token "". Was expecting one of: , "}", ";", . Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler warning WARNING: CSS warning: [1:6103] Ignoring the following declarations in this rule. Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error WARNING: CSS error: [1:6338] Error in style rule. Invalid token "". Was expecting one of: , "}", ";", . Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler warning WARNING: CSS warning: [1:6338] Ignoring the following declarations in this rule. Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error WARNING: CSS error: [1:6593] Error in expression. Invalid token "=". Was expecting one of: , , "/", , "-", , , ")", , "inherit", , , , , , , , , , , , , , , , , , , , . Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error WARNING: CSS error: [1:6781] Error in style rule. Invalid token "". Was expecting one of: , "}", ";", . Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler warning WARNING: CSS warning: [1:6781] Ignoring the following declarations in this rule. Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error WARNING: CSS error: [1:6938] Error in style rule. Invalid token "". Was expecting one of: , "}", ";", . Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler warning WARNING: CSS warning: [1:6938] Ignoring the following declarations in this rule. Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error WARNING: CSS error: [1:7010] Error in style rule. Invalid token "". Was expecting one of: , "}", ";", . Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler warning WARNING: CSS warning: [1:7010] Ignoring the following declarations in this rule. Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error WARNING: CSS error: [1:7352] Error in style rule. Invalid token "". Was expecting one of: , "}", ";", . Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler warning WARNING: CSS warning: [1:7352] Ignoring the following declarations in this rule. Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error WARNING: CSS error: [2:199] Error in style rule. Invalid token "*". Was expecting one of: , "}", ";", . Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler warning WARNING: CSS warning: [2:199] Ignoring the following declarations in this rule. Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error WARNING: CSS error: [2:1082] Error in pseudo class or element. Invalid token ":". Was expecting one of: , . Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler warning WARNING: CSS warning: [2:1082] Ignoring the whole rule. Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error WARNING: CSS error: [2:1691] Error in style rule. Invalid token ":". Was expecting one of: , "}", , ";", "/", , "-", , , , "!", "inherit", , , , , , , , , , , , , , , , , , , , . Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler warning WARNING: CSS warning: [2:1691] Ignoring the following declarations in this rule. Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error WARNING: CSS error: [1:685] Error in style rule. Invalid token ":". Was expecting one of: , "}", , ";", "/", , "-", , , , "!", "inherit", , , , , , , , , , , , , , , , , , , , . Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler warning WARNING: CSS warning: [1:685] Ignoring the following declarations in this rule. Jan 15, 2016 10:17:15 AM com.gargoylesoftware.htmlunit.javascript.host.html.HTMLElement jsxFunction_addBehavior WARNING: Unimplemented behavior: #default#userdata Exception in thread "main" com.gargoylesoftware.htmlunit.ElementNotFoundException: elementName=[a] attributeName=[] attributeValue=[About] at com.gargoylesoftware.htmlunit.html.HtmlPage.getAnchorByText(HtmlPage.java:550) at autoPEC.main(autoPEC.java:12)

Вопрос: Может ли кто-нибудь сказать мне, что я делаю не так и как это может быть corrrected? Обратите внимание, что im new для HTMLUnit

ответ

0

Отключить javascript, добавив нижеследующую строку после создания нового экземпляра для WebClient.

и повторите попытку. Это должно сработать.

+0

Привет спасибо за ваше предложение, но когда я ставлю эту строку только после создания нового экземпляра для WebClient, метод getOptions() указывается, как это undefined для типа WebClient. Не могли бы вы помочь? –

0

Вам нужно указать браузер для своего конструктора WebClient, иначе вы не сможете подключиться к странице. Добавьте этот код (задающий браузер и удаление журналов HtmlUnit):

LogFactory.getFactory().setAttribute("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.NoOpLog"); 

java.util.logging.Logger.getLogger("com.gargoylesoftware").setLevel(Level.OFF); 
java.util.logging.Logger.getLogger("org.apache.commons.httpclient").setLevel(Level.OFF); 

WebClient webClient = new WebClient(BrowserVersion.CHROME); 
webClient.getOptions().setJavaScriptEnabled(true); 
webClient.getOptions().setThrowExceptionOnScriptError(false); 
webClient.getOptions().setThrowExceptionOnFailingStatusCode(false); 

HtmlPage currentPage = webClient.getPage("http://www.google.com/"); 
HtmlAnchor advancedSearchAn = currentPage.getAnchorByText("About"); 
currentPage = advancedSearchAn.click(); 
Смежные вопросы