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

Фотография

Selenium WebDriver (C#) не переходит на нужную страницу


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

#1 Sunday8990

Sunday8990

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

  • Members
  • Pip
  • 9 сообщений
  • ФИО:Плисов Константин
  • Город:Кострома

Отправлено 10 июля 2011 - 12:28

Есть страница с двумя полями и кнопкой, и есть тест написанный на C# в VS2010 (Запускается с параметрами -именем пользователя и паролем).
При запуске на ChromeDriver программа работает почти нормально, но второе поле не заполняется; на InternetExplorerDriver не переходит на следующую страницу после нажатия "Вход"; с FirefoxDriver не грузится сам браузер. В командной строке выводит ошибку:
Изображение
Может ли дело быть только в версии браузеров? Без использования Selenium все грузиться без проблем на любом браузере.
Изображение
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using OpenQA.Selenium.IE;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium;
using System.IO;

namespace SeleniumTests
{
    class Program
    {
        static void Main(string[] args)
        {
            IWebDriver driver = new InternetExplorerDriver();
            driver.Navigate().GoToUrl("Http://server:2000/_forms/");
            Thread.Sleep(4000);
            IWebElement f_name = driver.FindElement(By.Id("ctl00_PlaceHolderMain_signInControl_UserName"));
            f_name.SendKeys(args[0]);
            IWebElement f_password = driver.FindElement(By.Id("ctl00_PlaceHolderMain_signInControl_password"));
            f_password.SendKeys(args[1]);
            IWebElement b_logon = driver.FindElement(By.Id("ctl00_PlaceHolderMain_signInControl_login"));
            b_logon.Click();
            driver.Navigate().GoToUrl("javascript:MSOTlPn_ShowToolPane2Wrapper('Edit', 16, MenuWebPartID)");
          
            driver.Quit();
        }
    }
}

  • 0

#2 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 10 июля 2011 - 19:22

Какая версия Selenium? Проверьте на самой последней.
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#3 Sunday8990

Sunday8990

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

  • Members
  • Pip
  • 9 сообщений
  • ФИО:Плисов Константин
  • Город:Кострома

Отправлено 11 июля 2011 - 07:54

На последней версии ничего не запустилось, но там библиотек меньше, наверно тест переделывать придется.
IE не запускает, пишет :
Unexpected error launching Internet Explorer. Protected Mode must be set to the same value (enabled or disabled) for all zones. (NoSuchDriver)
Для Chrome:
The file E:\Selenium\NewTest\NewSel\NewSel\bin\Debug\chromedriver.exe does not exist.
Firefox, правда, запустился, но у него теперь проблема как у Explorerа.
  • 0

#4 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 11 июля 2011 - 08:15

IE не запускает, пишет :
Unexpected error launching Internet Explorer. Protected Mode must be set to the same value (enabled or disabled) for all zones. (NoSuchDriver)

Ну так сделайте то, что он просит :)

On IE 7 or higher on Windows Vista or Windows 7, you must set the Protected Mode settings for each zone to be the same value. The value can be on or off, as long as it is the same for every zone. To set the Protected Mode settings, choose "Internet Options..." from the Tools menu, and click on the Security tab. For each zone, there will be a check box at the bottom of the tab labeled "Enable Protected Mode".
http://code.google.c...tExplorerDriver

Для Chrome:The file E:\Selenium\NewTest\NewSel\NewSel\bin\Debug\chromedriver.exe does not exist.

Опять таки -- ясно сказано, почему не запускается -- помимо самого хрома нужна вспомогательная утилита chromedriver.exe (для оперы, кстати, аналогично)

To get set up, first download the appropriate prebuilt server. Make sure the downloaded server can be located on your PATH or specify its location via the webdriver.chrome.driver system property.
http://code.google.c...ki/ChromeDriver

Firefox, правда, запустился, но у него теперь проблема как у Explorerа.

А если убрать странную строчку (что она вообще делает???)
driver.Navigate().GoToUrl("javascript:MSOTlPn_ShowToolPane2Wrapper('Edit', 16, MenuWebPartID)");
после клика и добавить хотя бы Thread.sleep(5000), чтобы посмотреть результат выполнения клика?
Интерфейс WebDriver асинхронный, он не ждёт, пока выполнится клик, нажал и помчался дальше. Поэтому Вы и не успеваете увидеть результат.
  • 1
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#5 Sunday8990

Sunday8990

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

  • Members
  • Pip
  • 9 сообщений
  • ФИО:Плисов Константин
  • Город:Кострома

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

Сократил код по минимуму, оставил только авторизацию. Работает на всех браузерах одинаково - заполняет оба поля, жмет "Вход", но страница, на которую должно перебросить, не загружается( Какие могут быть причины?
p.s Веб-приложение написано на базе sharepoint 2010,размещено на виртуальной машине с win2008 r2.

using System;
using System.Collections.Generic;
using OpenQA.Selenium.IE;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium;
using System.Threading;

public class Class1
{
    public static void Main(string[] args)
    {
        IWebDriver driver1 = new FirefoxDriver();
        driver1.Navigate().GoToUrl("http://server:2000/_forms/");
        driver1.Manage().Timeouts().ImplicitlyWait(new TimeSpan(0, 0, 30));
        IWebElement f_login = driver1.FindElement(By.Id("ctl00_PlaceHolderMain_signInControl_UserName"));
        f_login.SendKeys("User");
        IWebElement f_password = driver1.FindElement(By.Id("ctl00_PlaceHolderMain_signInControl_password"));
        f_password.SendKeys("Selenium1");
        IWebElement b_logon = driver1.FindElement(By.Id("ctl00_PlaceHolderMain_signInControl_login"));
        b_logon.Click();
        Thread.Sleep(10000);

    }
}

  • 0

#6 Sunday8990

Sunday8990

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

  • Members
  • Pip
  • 9 сообщений
  • ФИО:Плисов Константин
  • Город:Кострома

Отправлено 11 июля 2011 - 18:25

Все, проблема решилась! Все дело в том, что начать тест нужно было со стартовой страницы, без приставки "/_forms". При переходе со стартовой на /_forms присваиваются значения некоторым переменным, без которых авторизация не пройдет.
Алексей, большое спасибо за ответы, особенно касательно Chrome)
  • 0

#7 milana_kun

milana_kun

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

  • Members
  • Pip
  • 1 сообщений
  • ФИО:Милана Кун

Отправлено 02 августа 2011 - 13:42

У меня в Firefox 5.0.1 не запускается. В строке "IWebDriver driver = new FirefoxDriver();" выдаёт ошибку "Не удаётся найти указанный файл". Непонятно какой именно файл. Подскажите пожалуйста, что можно сделать.
Windows 7, Visual Studio 2010 Express, Selenium WebDriver

Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using NUnit.Framework;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.IE;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium;

class GoogleSuggest
{

    static void Main(string[] args)
    {
        //IWebDriver driver = new InternetExplorerDriver();
        //IWebDriver driver = new ChromeDriver();
        IWebDriver driver = new FirefoxDriver();

        driver.Navigate().GoToUrl("http://www.google.com/");
        IWebElement query = driver.FindElement(By.Name("q"));
        query.SendKeys("Cheese");
        System.Console.WriteLine("Page title is: " + driver.Title);
        driver.Quit();
        Console.ReadKey();
    }

}

  • 0


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

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