Как взаимодействовать с веб-страницей в Java?

Сейчас я новичок в Java. Мне как-то удалось понять следующий код.

 import java.net.*;
  import java.io.*;

 public class URLConnectionReader {
    public static void main(String[] args) throws Exception {
        URL yahoo = new URL("http://www.yahoo.com/");
        URLConnection yc = yahoo.openConnection();
        BufferedReader in = new BufferedReader(
                                new InputStreamReader(
                                yc.getInputStream()));
        String inputLine;

        while ((inputLine = in.readLine()) != null) 
            System.out.println(inputLine);
        in.close();
    }
}

На самом деле я получил это с некоторыми усилиями, поэтому, пожалуйста, поймите, что я новичок. Я хочу взаимодействовать с веб-страницей. Из кода я понял, что любая информация веб-страницы будет просто отображаться. Мне просто нужна ваша помощь, чтобы посоветовать мне, что мне следует изучать дальше.

Я хочу, чтобы моя веб-страница перешла на веб-страницу, войдите в систему. Затем нажмите кнопку. Выполните сравнение между двумя столбцами и сообщите мне об этом, если они не равны.

Я читал по HTTP и знаю, что веб-взаимодействие возможно. У людей есть код, который выше моего понимания.

Я мало знаю о наследовании или инкапсуляции [все еще учусь] (если это необходимо)

Используя предоставленный мной код, можно ли добавить мои требования? Потому что люди дают однострочные коды или 30-строчные коды ... пожалуйста, поймите, что я не так хорош в этом.

Я провел исследование. Я просто хочу, чтобы кто-то дал мне направление. Я начинаю путаться из-за такого количества методов.

Я думаю, кто-то сказал мне, что php проще в этом вопросе, но в php я даже ничего не знаю. (Я знаю, что это язык OOPS, но все же)

Любое руководство действительно ценится.


person ToxicGlow    schedule 22.01.2014    source источник


Ответы (1)


Если вам действительно нужно взаимодействовать с веб-сайтом, то selenium/webdriver идеально подходит для ваших нужд:

http://code.google.com/p/selenium/wiki/GettingStarted

Пример поиска Google:

package org.openqa.selenium.example;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;

public class Example  {
    public static void main(String[] args) {
        // Create a new instance of the html unit driver
        // Notice that the remainder of the code relies on the interface, 
        // not the implementation.
        WebDriver driver = new HtmlUnitDriver();

        // And now use this to visit Google
        driver.get("http://www.google.com");

        // Find the text input element by its name
        WebElement element = driver.findElement(By.name("q"));

        // Enter something to search for
        element.sendKeys("Cheese!");

        // Now submit the form. WebDriver will find the form for us from the element
        element.submit();

        // Check the title of the page
        System.out.println("Page title is: " + driver.getTitle());
    }
}
person Jaffar Ramay    schedule 22.01.2014
comment
О да, я знаю, что это прекрасно! Мой друг, занимающийся разработкой программного обеспечения на 3-м курсе, с грустью рассказал мне об этом, он сказал, что может потребоваться до 2 месяцев, чтобы понять это... и у меня было около двух месяцев, чтобы разработать этот код! Можно ли научиться за 2 недели? - person ToxicGlow; 22.01.2014
comment
Да, это определенно возможно выучить за 2 недели. Во-вторых, он широко используется профессионально для автоматического тестирования, поэтому стоит изучить Selenium, вы также изучите другие вещи, такие как XML, xPath и т. д. - person Jaffar Ramay; 22.01.2014
comment
Это кажется довольно интересным... можете ли вы войти в систему, используя селен? - person ToxicGlow; 22.01.2014
comment
например, если я получу веб-страницу, такую ​​​​как facebook, позволит ли она мне ввести свои данные, такие как имя пользователя или пароль? - person ToxicGlow; 22.01.2014
comment
Да, Selenium создан для того, чтобы делать почти все, что пользователь может делать на веб-странице. На сегодняшний день это одна из лучших сред тестирования в отрасли, а вход в систему — очень начальная и основная тестовая точка для любого приложения. - person Jaffar Ramay; 22.01.2014
comment
да. Вы можете изучить Selenium2 за две недели. К сожалению, кажется, что он не может идти в ногу с текущим развитием браузера, а это означает, что если вы не используете веб-драйвер chromium, он, к сожалению, не будет работать очень хорошо. В зависимости от того, какой вид взаимодействия вы хотите, вы, вероятно, можете обойтись без использования HTMLUnit. Наконец, вы можете использовать что-то вроде PhantomJS. - person Mikkel Løkke; 22.01.2014
comment
Selenium и HTMLUnit несколько похожи по своей концепции, но Selenium более зрелый/надежный и имеет гораздо больше возможностей. Обратите внимание, что Selenium включает в себя подключаемый модуль записи (IDE) для Firefox, который позволяет записывать тесты, и инфраструктуру автоматизации RC/WebDriver, которая, по сути, управляет браузером. Их можно использовать вместе, чтобы упростить создание тестов. Единственное преимущество, которое я мог видеть в использовании HTMLUnit, заключается в том, что он требует меньше ресурсов, поэтому вы потенциально можете запускать тесты на меньшем количестве оборудования, но с параллельной поддержкой Selenium даже это уже не так. - person Jaffar Ramay; 22.01.2014
comment
PhantomJS отлично работает в командной строке, он подходит в качестве первого уровня дымового тестирования, будь то часть рабочего процесса разработки и/или сервер непрерывной интеграции. Selenium предназначен для нескольких браузеров, и поэтому очень полезно обеспечить согласованность между браузерами и проводить обширные тесты в разных операционных системах. - person Jaffar Ramay; 22.01.2014