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

raa

Регистрация: 25 окт 2012
Offline Активность: 31 мар 2015 12:13
-----

Мои темы

Не могу подобраться к чекбоксу

25 марта 2014 - 12:06

Всем доброго дня, прошу помощи

 

есть таблица с документами, напротив каждого из документов можно отмечать чекбокс, у каждого из документов есть значения в соответствующих колонках. До определенного дня "X" я находил и кликал нужный мне чекбокс определенного документа по следующей цепочке из 3х значений 

 

driver.findElement(By.xpath("//td/a[contains(text(), 'Согласован')]/../td[contains(text(), '666')]/../td/input[@type='checkbox']")).click(); 

 

Но вот настал день "X" и программеры сделали одно из значений кликабельной ссылкой, что теперь не позволяет мне обратиться к определенному чекбоксу определенного документа... 

 

Проверяю через Firepath - объект //td/a[contains(text(), 'Согласован')] корректно находится, но в комплекте //td/a[contains(text(), 'Согласован')]/../td[contains(text(), '666')]/../td/input[@type='checkbox'] - не фурычит, наверное я неправильно определяю..

 

вот код строки 

 

 

 

 

 


Selenium Grid + Запуск одновременно большого кол-ва сессий IE

11 марта 2014 - 09:00

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

 

Есть необходимость реализовать некий вид нагрузки с одновременной работой большого кол-ва эксплореров.

Условие:

-работа веб приложения возможна только в IE;

-скрипт должен выполняться одновременно, кол-во пользователей порядка 100;

 

Почему не jmeter:

Реализовать приходится именно через selenium grid т.к. для работы необходим обязательно запущенный IE т.к. в личных кабинетах пользователей используется плагин для использования сертификатов безопасности который работает только под ie и только если ie реально запущен....

 

А теперь внимание вопрос: возможно ли на каждой ноде одновременный запуск и одновременная работа нескольких IE?

 

На данный момент я сконфигурировал на каждой ноде по 5 возможных одновременно запущенных IE, но grid как то странно с ними работает, он вроде бы запускает необходимое кол-во IE, но действия выполняет только в той сессии которая открыта, остальные либо валяться, либо действия в них выполняют только по окончанию действий в текущей отображаемой сессии.

 

Вопрос возник потому, что 100 виртуалок у меня нет и точно не будет, возможно что удастся получить 10-15 виртуалок, поэтому я наивно рассчитывал на каждой одновременную работу нескольких IE.... это невозможно? 

 

Использую Eclipse + TestNG + Selenium Grid

 

 


webdriver простое ветвление

20 февраля 2014 - 07:42

Друзья, всех приветствую. Я совсем новичек в работе с webdriver. Никак не могу составить рабочее условие "если и то"... Понимаю, что вопрос возможно совсем простой, но 2 дня гуглю и так и не могу найти рабочее решение, в ООП тоже очень слаб.

 

условие:

 

есть несложный тест, который выполняет последовательно авторизацию на сайте и далее выполняет некую последовательность действий.

 

необходимо:

 

учитывать, что после нажатия кнопки авторизации, возможно появится предупреждающая страничка  с неким текстом  и с кнопками "ВХОД" и "ОТМЕНА". Если страничка появилась необходимо нажать на кнопку ВХОД и далее идти по списку действий теста, если страничка не отобразилась, то необходимо сразу переходить к дальнейшим действия теста.

 

Для простоты решил, что судить о появлении страничку можно по уникальному тексту который отображается на странице, но как построить условие 

если есть текст то делать то

а если текста нет то ничего не делать и идти дальше не понимаю

 

 

public class OpenAndAuthorise_AIS1 {

  private WebDriver driver;
  private String baseUrl;
  private boolean acceptNextAlert = true;
  private StringBuffer verificationErrors = new StringBuffer();
 
  @Before
  public void setUp() throws Exception {
    
System.setProperty("webdriver.ie.driver", "C:\\IEDriverserver.exe");
 
//driver = new ChromeDriver();
//driver = new FirefoxDriver();
driver = new InternetExplorerDriver();
 
    baseUrl = "открываемая страничка";
    driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
   
      
           
  }
  
    @Test
  public void testOpenAndGetTologinScreen3() throws Exception {
    driver.get("открываемая страничка");
    driver.findElement(By.name("login")).sendKeys("1234567");
    driver.findElement(By.name("password")).sendKeys("1111111");
    driver.navigate().to("javascript:document.getElementById('LoginBtn').click()");
    
вот тут может появится или не появится предупреждение
    
    driver.findElement(By.id("ext-gen26")).click();
    driver.findElement(By.xpath("/html/body/div[4]/div[2]/div/table/tbody/tr/td/table/tbody/tr/td/div/div/div/div/table/tbody/tr/td/table/tbody/tr[2]/td[2]/em")).click();
    driver.findElement(By.id("ext-gen73")).click();
    driver.findElement(By.id("btnSave")).click();
    driver.findElement(By.id("NumberDoc")).sendKeys("123456");