Selenium не находит элементов при запуске тестов как набора - PullRequest
0 голосов
/ 18 декабря 2018

У меня странная проблема с селеном, когда я запускаю их как группу.Позвольте мне описать мою проблему более подробно.Когда я запускаю только один тест из Ide, все в порядке.Но когда я пытаюсь запустить их как группу, всегда проходит первый тест, но после этого тесты не проходят.В каждом тесте я нахожу и нажимаю одну и ту же кнопку.С xPath проблем нет, потому что в chrome консольный элемент найден.После каждого теста у меня есть метод, который возвращает сайт в исходное местоположение.Ах, и элементы, которые я тестирую, находятся в iFrame.

Так что давайте скопируем и вставим пример кода.

Класс API:

public class SiteImpl implemets BasicSite {
.
.
.
static {
    swtichToTestedFrame();
}

private SiteImpl() {};

public static SiteImpl get() {
    return new SiteImpl ();
}

@Override
public void clickCreateButton() {
    Utils.findElementByXpathAndParam(XPath.DIV_TITLE_XPATH, BUTTON_TITLE).orElseThrow(
            () -> new NoSuchElementException("Create button does not exist")).click();
}

private static void swtichToTestedFrame() {
    WebElement iFrameElement = Utils.findElementByXpath(XPath.IFRAME_XPATH).orElseThrow(() -> new NoSuchElementException("iFrame does not exist"));
    XdmWebDriver.getWebDriver().switchTo().frame(iFrameElement);
}
}

И давайтескажем, все тесты выглядят так, как я упоминал ранее, только первый тест проходит.Событие, если все они одинаковы.

 @Test
 public void test() {
   ExportManagerImpl.get().clickCreateTask();
 }

Очевидно, что есть до и после метода.Код, очевидно, упрощен.

org.openqa.selenium.NoSuchElementException: Create button does not exist
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '2.53.1', revision: 'a36b8b1', time: '2016-06-30 17:37:03'
System info: host: 'xxxx', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_162'
Driver info: driver.version: unknown

1 Ответ

0 голосов
/ 18 декабря 2018

Я предложу вам вызвать swtichToTestedFrame() в конструкторе вместо статического блока.

Не могли бы вы указать, как вы группируете тесты и полный файл с @Before и @Test.Мне будет полезно понять это лучше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...