Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Работа с таблицами Selenium+Python



Software-Testing.Ru - портал тестировщиков  

Новые темы форума тестировщиков


Работа с таблицами Selenium+Python
2015-10-02 11:20

Доброе утро, нужна помощь с вытягиванием текста из таблицы. Задача тривиальна, нужно провести проверку ранее введенных данных в веб форму. Делать проверку чисто по Xpath не хочется. Нужно вытащить колонки и строки из таблицы и потом сравнить их с другим массивом.

 

 

 

<table class="table table-bordered">
    <tbody>
       <tr>
          <th class="col-sm-3">First name</th>
         <td>Ivan</td>
      </tr>
      <tr>
        <th>Surname</th>
        <td>Petrov</td>
     </tr>
 
 


Передача даты в поле
2015-10-02 16:13

Такое дело. Тест Проходит нормально, но не выполняется одно условие: не передается определенная дата. 

Вот сам код, в комментариях указано где что должно делаться.

Программист сайта сказал как это делает он, но у него C#. 

$('#dateGo').val(str)

Подскажите, где я не прав.

package com.holydiverinc.webdriver;


import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxProfile;
import org.openqa.selenium.firefox.internal.ProfilesIni;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.concurrent.TimeUnit;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;


public class YTTrainSearchDate {
    private WebDriver driver;
    private String baseUrl;
    private boolean acceptNextAlert = true;
    private StringBuffer verificationErrors = new StringBuffer();

    @Before
    public void setUp() throws Exception {
                FirefoxProfile profile = new ProfilesIni().getProfile("Webdriver");
        driver = new FirefoxDriver(profile);
        baseUrl = "https://yt.ua";
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
    }

    @Test
    public void testYTTrainSearch() throws Exception {
        Calendar c = new GregorianCalendar();
        c.add(Calendar.DAY_OF_YEAR, 4); // увеличиваем на 4 дня от текущей даты
        SimpleDateFormat format1 = new SimpleDateFormat("dd.MM.yyyy"); //придаем нужный формат дате
        String str = format1.format(c.getTime());//c.getTime().toString();//вытягиваем измененную дату в нужном формате и присваиваем переменной
        driver.get(baseUrl + "/ru");
        driver.findElement(By.xpath("//div[@id='ytLogin']")).click();
        driver.findElement(By.xpath("(//input[@type='text'])[4]")).clear();
        driver.findElement(By.xpath("(//input[@type='text'])[4]")).sendKeys("info@yt.ua");
        driver.findElement(By.xpath("(//input[@type='password'])[2]")).clear();
        driver.findElement(By.xpath("(//input[@type='password'])[2]")).sendKeys("111111Qq");
        driver.findElement(By.cssSelector("#ytAuthByLogin > button.yt-button-dark-brown.gradient")).click();
        assertEquals("info@yt.ua", driver.findElement(By.xpath("//span[@id='globalStateLine']")).getText());
        driver.findElement(By.xpath("//table[@id='userMenu']/tbody/tr/td/a/img")).click();
        driver.findElement(By.xpath("//div[@id='railwaySearchForm']/div/div[2]/label/span")).click();
        driver.findElement(By.id("depStation")).clear();
        driver.findElement(By.id("depStation")).sendKeys("\u043a\u0438\u0435"); //Киев
        driver.findElement(By.id("depStation")).sendKeys(Keys.DOWN);
        driver.findElement(By.id("ui-id-3")).click();
        driver.findElement(By.xpath("//input[@id='dateGo']")).sendKeys(str);// ТУТ ДОЛЖНО ПЕРЕДАВАТЬ НУЖНУЮ ДАТУ, но оставляет текущую
        driver.findElement(By.id("arrStation")).clear();
        driver.findElement(By.id("arrStation")).sendKeys("\u041b\u042c\u0412\u0406\u0412"); //Львов
        driver.findElement(By.id("arrStation")).sendKeys(Keys.DOWN);
        driver.findElement(By.id("ui-id-13")).click();
        driver.findElement(By.cssSelector("button.yt-button-dark-brown.gradient")).click();

    }

    @After
    public void tearDown() throws Exception {
        driver.quit();
        String verificationErrorString = verificationErrors.toString();
        if (!"".equals(verificationErrorString)) {
            fail(verificationErrorString);
        }
    }

    private boolean isElementPresent(By by) {
        try {
            driver.findElement(by);
            return true;
        } catch (NoSuchElementException e) {
            return false;
        }
    }

    private boolean isAlertPresent() {
        try {
            driver.switchTo().alert();
            return true;
        } catch (NoAlertPresentException e) {
            return false;
        }
    }

    private String closeAlertAndGetItsText() {
        try {
            Alert alert = driver.switchTo().alert();
            String alertText = alert.getText();
            if (acceptNextAlert) {
                alert.accept();
            } else {
                alert.dismiss();
            }
            return alertText;
        } finally {
            acceptNextAlert = true;
        }
    }
}


Тестирование SEO и админки CMS
2015-10-02 16:32

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

 

1. Впервые столкнулся с сайтом,написанным на CMS (1С-битрикс). Соответственно, админка у этого сайта битриксовская. Встал вопрос - а есть ли вообще смысл тестировать эту админку? Я же так понимаю, что любая CMS на момент своего выхода, тестируется специалистами, которые её реализовывали. И, соответственно, административная часть этой системы будет по функционалу своему одинаковая во всех сайтах, построенных на этой CMS, отличаться будут только непосредственно данные, в эту админку введённые. Отсюда следует, что CMS-это полуфабрикат, который был разработан и протестирован компанией-разработчиком, и при разворачивании сайта на этой CMS, эта CMS не требует тестирования для себя? Правильно, или я чего-то не понимаю? 

 

2. Не подскажите ли, а как вообще проводится тестирование SEO? Его обязательно проводить через какие-либо аналитические сервисы гугла или яндекса, или оно и без дополнительных инструментов как-то проводится? Честно говоря, ни разу не сталкивался с этим.



Стратегии тестирования
2015-10-04 14:30

27 сентября рассказывал о стратегиях тестирования на radio-qa. Рассказ был смещен в сторону определении того, что такое стратегия в целом и что такое стратегия тестирования в частности. В том числе приведены критерии по которым можно определить, что документ  стратегии не содержит. Рассмотрены всего три возможных аспекта стратегий из примерно полусотни мне известных. Они приводились для иллюстрации определения "стратегии тестирования".

 

Есть запись. Рекомендую.

 

PS. Надеюсь что будет еще расшифровка переведенная в статьи.

 

PSS. Походе, что материал уникальный и существует только на русском языке. Если у кого то есть обратная информация - буду рад ссылкам.



© 2010 | Software-Testing.Ru


В избранное