Перейти к содержимому

Фотография

Selenium 2.0 не догружается страница


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 9

#1 man4ik21

man4ik21

    Новый участник

  • Members
  • Pip
  • 9 сообщений
  • ФИО:иван Перломутров Апапович

Отправлено 30 июля 2012 - 09:40

Возможно кто-то сталкивался, возможно знает решение.
Столкнулся с проблемой :
При попытке поделиться ссылкой вручную(не через Selenium 2.0 все происходит без проблем),
при попытке сделать SHARE через Selenium 2.0 не догружает страницу, обновление страницы через Selenium не помогает.
Прикладываю два скриншота, чтоб было понятней. Как есть: Прикрепленный файл  012.png   411,74К   84 Количество загрузок: Как должно быть: Прикрепленный файл  013.png   346,67К   77 Количество загрузок:
  • 0

#2 man4ik21

man4ik21

    Новый участник

  • Members
  • Pip
  • 9 сообщений
  • ФИО:иван Перломутров Апапович

Отправлено 30 июля 2012 - 11:17

Исходный код:
   WebDriver driver;
driver = new ChromeDriver();
        driver.get(url);
 WebElement elementLinkinVK = driver.findElement(By.xpath("//*[@id=\"main\"]/article/section/article/div[4]/div[2]/div[4]/a"));
        elementLinkinVK.click();


        Set<String> handles = driver.getWindowHandles();
        for (String handl : handles) {
            driver.switchTo().window(handl);

        }

        WebElement frame = driver.findElement(By.tagName("iframe"));
        driver.switchTo().frame(frame);


        WebElement elUsername;
        elUsername = driver.findElement(By.xpath("//*[@id=\"email\"]"));
        elUsername.sendKeys(_username);

        WebElement elPassword;
        elPassword = driver.findElement(By.xpath("//*[@id=\"pass\"]"));
        elPassword.sendKeys(_password);

        WebElement elSubmit;
        elSubmit = driver.findElement(By.xpath("//*[@id=\"vkontakte\"]/body/div[6]/ul/li[1]/span/a"));
        elSubmit.click();

        elSubmit = driver.findElement(By.xpath("//*[@id=\"share_comment\"]"));
        elSubmit.sendKeys("aa");
        sleep(3000);
        System.out.println(driver.getPageSource());


        sleep(1000);




  • 0

#3 appmen

appmen

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений
  • ФИО:Victor

Отправлено 30 июля 2012 - 12:20

как вариант - поставить слип не 3000, а очень много и дождаться этой картинки (и чего там должно быть). А вообще - слип - не очень хорошая практика. Можно использовать что-то
while (driver.findElement(By.xpath("//*[@id=\"share_comment\"]"))!= true) {
     sleep (1000);
или  Thread.sleep(1000);
}

  • 0

#4 man4ik21

man4ik21

    Новый участник

  • Members
  • Pip
  • 9 сообщений
  • ФИО:иван Перломутров Апапович

Отправлено 30 июля 2012 - 12:24

как вариант - поставить слип не 3000, а очень много и дождаться этой картинки (и чего там должно быть). А вообще - слип - не очень хорошая практика. Можно использовать что-то

while (driver.findElement(By.xpath("//*[@id=\"share_comment\"]"))!= true) {
     sleep (1000);
или  Thread.sleep(1000);
}

Sleep :
    private void sleep(long i) {
        try {
            Thread.sleep(i);
        } catch (InterruptedException e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        }
    }


Но на самом деле дело не в нем. Хоть 10 лет поставить страница не загружается до конца.
Возможно у Вас есть какие нибудь еще идеи? Было бы очень здорово)
  • 0

#5 appmen

appmen

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений
  • ФИО:Victor

Отправлено 30 июля 2012 - 12:37

я имел в виду, что у вас слип ждёт даже в том случае, если єлемент есть. А ответа на основной вопрос не знаю. Может важно то, как проходит логин в фейсбуке
  • 0

#6 man4ik21

man4ik21

    Новый участник

  • Members
  • Pip
  • 9 сообщений
  • ФИО:иван Перломутров Апапович

Отправлено 31 июля 2012 - 06:40

UPD:
Вопрос актуален
  • 0

#7 man4ik21

man4ik21

    Новый участник

  • Members
  • Pip
  • 9 сообщений
  • ФИО:иван Перломутров Апапович

Отправлено 06 августа 2012 - 10:28

UPD 2:
Вопрос до сих пор актуален

Поддержка вк.ком сказала, что возможно Selenium 2.0 не имеет возможности догружать JS.
Есть ли у кого-нибудь идеи по этому поводу?
  • 0

#8 appmen

appmen

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений
  • ФИО:Victor

Отправлено 06 августа 2012 - 11:30

ну, Селениум без графики не умеет подгружать JS. Мне кажется, что стоит спросить Баранцева по этому поводу (или того, кто знает о чём речь). Попробуйте скопировать JS библиотеку, которая подгружается и указать её в коде. Как єто правильно сделать - не знаю :(
  • 1

#9 Arkady

Arkady

    Активный участник

  • Members
  • PipPip
  • 94 сообщений
  • ФИО:AAA
  • Город:Белоруссия

Отправлено 21 августа 2012 - 12:40

у меня тоже на некоторых сайтах не догружается страница.
Попробвал запускать не из фаирфокса, а искользовать драйвер Хрома - заработало, в хроме у меня догружается.
  • 0

#10 Rara

Rara

    Активный участник

  • Members
  • PipPip
  • 83 сообщений
  • ФИО:Кондрашов Юрий Алексеевич
  • Город:Минск, Беларусь


Отправлено 31 августа 2012 - 10:21

искользовать драйвер Хрома

Судя по коду, тут и так используется хром.

Я бы попробовал логировать запросы на сервер и ответы от сервера с помощью прокси и сравнить. Например, пользовался функцией логирования у WebScarab и the Proxomitron.

Это, кстати, поможет проверить заявление

что возможно Selenium 2.0 не имеет возможности догружать JS

хотя оно выглядит крайне сомнительным.
  • 0
Я бы переписал жизнь, но Бог не дает мне исходники


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных