作为套件运行测试时,硒找不到元素

时间:2018-12-18 09:01:56

标签: java selenium testing

当我将它们作为一组运行时,硒出现奇怪的问题。 让我更详细地描述我的问题。当我从ide进行一项测试时,一切正常。但是,当我尝试将它们作为一个小组进行运行时,总是会先通过测试,但之后测试就会失败。在每个测试中,我都找到并单击相同的按钮。 xPath没问题,因为在chrome控制台元素中找到了。 每次测试后,我都有将网站返回到家的方法。 Ach和我要测试的元素位于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 :(得分:2)

我建议您在构造函数而不是静态块上调用swtichToTestedFrame()

请提供使用@Before和@Test对测试和完整文件进行分组的方式。有助于我更好地理解它。