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

Demetri

Регистрация: 11 фев 2010
Offline Активность: 28 фев 2017 14:26
-----

#94997 Не срабатывает подтверждение при удалении.

Написано Demetri 30 сентября 2011 - 08:31

...
Скорее всего проблема в версии браузера. Попробуйте на какой-нибудь более надежной и известной версии попробовать.

Кстати, да. Что-то я как-то сразу об этом не подумал. Selenium 1.0 вроде как себя не очень хорошо чувствует с версиями FF старше 3.6.х? Попробуй в версии FF 3.6.x выполнить скрипт
  • 1


#94869 Вопросы по миграции с Sekenium 1.0 на 2.0

Написано Demetri 28 сентября 2011 - 13:54

А если сделать просто вот так?
driver.findElement(By.xpath("//input[@class='password-replaced placeholder']")).sendKeys(password);
У меня вроде работает :blush:
  • 1


#94857 Pop-up вместо открытия в новой вкладке.

Написано Demetri 28 сентября 2011 - 12:04

Насколько я помню, Selenium 1.0 не поддерживает работу с табами, поэтому он себя так и ведет. Пишите скрипт с учетом того, что вместо вкладки будет раскрыватся поп-ап - с ними Selenium работать умеет
  • 1


#94037 selenium.click(button) doesnt work in Opera

Написано Demetri 13 сентября 2011 - 07:12

Здравствуйте, Demetri. Вы мне очень помогли год назад, когда я начинала, я вас помню и люблю :kiss2:
спасибо, за подсказку, но что-то не понимает C# этого метода driver.getCurrentUrl(); ни даже вот этого: driver.GetCurrentUrl();
скринпруф приаттачила..

Эмм... странно. Но тогда должна помочь такая конструкция (пример на Java, но его не сложно переписать по C#):
String javascript = "return window.location.href;";
String url = (String) ((JavascriptExecutor)driver).executeScript(javascript);


...
Вот так пытаюсь подключить Оперу:

DesiredCapabilities capabilities = DesiredCapabilities.Opera();
  capabilities.IsJavaScriptEnabled = true;
 IWebElement driver = new RemoteWebDriver(capabilities);

не запускает, пишет:

Unexpected error. System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 127.0.0.1:4444
at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
--- End of inner exception stack trace ---
at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context)
at System.Net.HttpWebRequest.GetRequestStream()
at OpenQA.Selenium.Remote.HttpCommandExecutor.Execute(Command commandToExecute) in c:\Projects\WebDriver\trunk\dotnet\src\WebDriver\Remote\HttpCommandExecutor.cs:line 91
at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(DriverCommand driverCommandToExecute, Dictionary`2 parameters) in c:\Projects\WebDriver\trunk\dotnet\src\WebDriver\Remote\RemoteWebDriver.cs:line 795

RemoteWebDriver Server запущен? :)
http://code.google.c...WebDriverServer

...
Назрел вопрос номер ТРИ:

как запускать вебдрайвер удалённо?
Селениум на Java я запускала так:

if(Local)  // если локальная машина
			sel = new DefaultSelenium("localhost",4444, "*chrome", constant.url);
			else //если удалённая
			sel = new DefaultSelenium("172.16.38.128",4444, "*chrome", constant.url);
			
			sel.start(); 

http://seleniumhq.org/docs/04_webdriver_advanced.html#remotewebdriver
WebDriver driver = new RemoteWebDriver(
                                new URL("http://172.16.38.128:4444/wd/hub"), 
                                DesiredCapabilities.Opera());


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

ОС какая? С Windows7 такой проблемы нет
  • 1


#93612 Selenium и графика

Написано Demetri 02 сентября 2011 - 09:05

Selenium RC 1.x используется?

Сначала проверяешь что картинка присутствует по XPath, а затем проверяешь атрибут SRC. Проверка атрибута SRC будет выглядеть примерно так:
$src_value = $this->getAttribute("//div[@id='container']/div[3]/div/table/tbody/tr[3]/td/img[2]@src");
$img_name = "1.png";

$match = strpos($src_value, $img_name);

if ($match === false) {
    echo "Картинка X.png";
} else {
    echo "Картинка 1.png";
}
Я уже успел подзабыть PHP серьезно, поэтому более подробно расписать вот сразу вряд ли смогу :)

А можно и совместить в более сложном XPath локаторе:
$this->assertTrue($this->isElementPresent("//div[@id='container']/div[3]/div/table/tbody/tr[3]/td/img[2][contains(@src, '1.png')]"));

  • 1


#93582 Selenium и графика

Написано Demetri 01 сентября 2011 - 15:15

Java, WebDriver:
String img_name = webdriver.findElement(By.xpath("//xpath/to/img")).getAttribute("src").replace("/images/","");
if(img_name.equals("1.png"))
System.out.println("Картинка 1.png");
else
System.out.println("Картинка 2.png");

  • 1


#93513 SE WebDriver - ошибка switchTo().frame()

Написано Demetri 31 августа 2011 - 14:40

firefox.switchTo().frame("canvas_frame");
и еще надо учесть, что если до переключения к этому фрейме мы находились в другом фрейме, то надо переключится к основному окну:
firefox.switchTo().defaultContent()
а потом уже переключатся к фрейму
  • 1


#78721 Selenium Grid - как начать?

Написано Demetri 12 октября 2010 - 06:53

Да, одна RC запущена

Available Remote Controls
Host Port Environment 
localhost 5555 *firefox
...

Так, стоп. У тебя Hub и RC на одном порту запущены? Такого быть не может :)
При инициализации сессии браузера в коде надо указывать адрес и порт не RC, а Hub'a. По-умолчанию, он на 4444 порте запускается
  • 1


#78489 Selenium Grid - как начать?

Написано Demetri 01 октября 2010 - 16:24

По поводу Hudson CI: Hudson (wiki)
Роль довольно простая: периодически забирает из SVN'а свежайшую версию проекта авто-тестов, компилирует, а потом ant-командами их запускает, собирает и рассылает результаты на e-mail.

По воводу GRID. GRID-Hub выступает в роли selenium-сервера, получая команды, он определяет ID selenium-сессии и перенаправляет команду в зарезервированный под этот ID Selenium-RC. Диспетчер своего рода.

Искать примеры работу Selenium+ANT надо, отталкиваясь от того, какой тестовый фреймворк собираетесь использовать.
Для TestNG:
http://testng.org/doc/ant.html
Google: selenium+ant+testng
  • 1


#78089 Тестирование drop-down lists при помощи Selenium

Написано Demetri 20 сентября 2010 - 11:01

Перебор элементов списка:
String[] labels = selenium.getSelectOptions("ddObjectType");
for (String label : labels){
    selenium.select("ddObjectType", label);
}
Надо стараться уменьшить количество кликов и прочего, иначе Selenium ну оооооочень долго будет перебирать списки :)

PS Еще заметил, что присутствует событие на onchange - не знаю, что делает этот скрипт, но если это что-то важное, то можно сделать так:
String[] labels = selenium.getSelectOptions("ddObjectType");
for (String label : labels){
    selenium.select("ddObjectType", label);
    selenium.fireEvent("ddObjectType","change");
}

  • 1