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

Что дает использование PageFactory?



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

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


Что дает использование PageFactory?
2016-03-11 19:30

Не понимаю необходимости использования класса PageFactory. По-моему, без него все выглядит гораздо проще и логичнее. Ну вот, например, создадим два класса: PageObjectWithPageFactory и PageObjectWithoutPageFactory и воспользуемся ними для работы с объектом PageObject.

 

В первом случае имеем:

package selenium;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.How;

public class PageObjectWithPageFactory {
    WebDriver driver;
    @FindBy(how=How.ID, id="lst-ib")
    WebElement fieldSearch;
    @FindBy(how=How.NAME, name="btnK")
    WebElement btnSearch;
    public PageObjectWithPageFactory(WebDriver driver){
        this.driver = driver;
        driver.get("https://www.google.com.ua");
    }
    public void find(){
        fieldSearch.sendKeys("Искать что-нибудь");
        btnSearch.click();
    }
    
}

и соответственно его реализация:

public class Selenium {
    public static void main(String[] args) {
        WebDriver driver = new FirefoxDriver();
        PageObjectWithPageFactory page = PageFactory.initElements(driver, PageObjectWithPageFactory.class);
        page.find();
    }
}

Во втором случае:

package selenium;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;

public class PageObjectWithoutPageFactory {
    WebDriver driver;
    WebElement fieldSearch;
    WebElement btnSearch;
    
    public PageObjectWithoutPageFactory(WebDriver driver){
        this.driver = driver;
        driver.get("https://www.google.com.ua");
        fieldSearch = driver.findElement(By.id("lst-ib"));
        btnSearch = driver.findElement(By.name("btnK"));
    }
    public void find(){
        fieldSearch.sendKeys("Искать что-нибудь");
        btnSearch.click();
    }
    
}

и его реализация:

public class Selenium {
    public static void main(String[] args) {
        WebDriver driver = new FirefoxDriver();
        PageObjectWithoutPageFactory page = new PageObjectWithoutPageFactory(driver);
        page.find();
    }
}

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



Почему selenium требует так много оперативной памяти?
2016-03-12 04:19

Здравствуйте.
На VPS стоит selenium, элементарно при запуске начинает кушать 400 метров оператики, если начинаю какие-то операции проводить с ним, то поднимается до гигабайта и выше. 
В стою очередь на локальной машине потребляет 90 метров, хотя всё настроено одинаково.
В чём может быть проблема?

VPS
xAe5qQBSYZO5VA.jpg

Локальная машина
vAWyaPOhkyelam.jpg



Реально ли устроиться автоматизатором без опыта?
2016-03-12 21:46

Всем привет. Хотелось бы узнать мнение бывалых и более опытных. Сейчас работаю тестировщиком, занимаюсь ручным тестированием. Есть желание научиться автоматизации, но в тоже время врядли дадут возможность на текущем месте работы заниматься автоматизацией, так как больше требуются ручные тестеры. Как считаете, может быть опыт есть аналогичный, если закончить курсы автоматизаторов, реально ли найти новую работу,чтобы сразу заниматься именно автотестами?



Параметр из респонаса передается в реквест, но не выполняется
2016-03-12 23:03

Ребята, такая проблема: для одного из request'ов добавила BeanShell PreProcessor, в котором проинициализировала массив, положила одно из значений в переменную. В Debug Sampler вижу, что значение успешно записалось в переменную. Также эта переменная успешно передается в запрос№2, но ответ я получаю совсем не тот, что ожидала, вида: //EX[2,1,["com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException/3936916533","Type 'mydomain.dto.settings.filters.ResultDetailsFilterPattern' was not assignable to 'com.google.gwt.user.client.rpc.IsSerializable' and did not have a custom field serializer. For security purposes, this type will not be deserialized."],0,7] Таким образом, запрос не выполняется. что не так? в логах пусто. прошу помощи, ибо не могу решить эту проблему весь день :sad:



© 2010 | Software-Testing.Ru


В избранное