【问题标题】:Selenium not finding elements when running tests as suiteSelenium 在以套件形式运行测试时找不到元素
【发布时间】:2018-12-18 09:01:56
【问题描述】:

当我将它们作为组运行时,我遇到了 selenium 的奇怪问题。 让我更详细地描述我的问题。当我只从 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();
 }

显然有 before 和 after 方法。代码明显简化了。

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

【问题讨论】:

  • 作为组运行时也提供控制台错误

标签: java selenium testing


【解决方案1】:

我会建议你在构造函数而不是静态块中调用swtichToTestedFrame()

能否请您提供如何对测试进行分组以及使用@Before 和@Test 的完整文件。有助于我更好地理解它。

【讨论】:

  • 似乎问题出在静态块上,我确实尝试将此代码放入构造函数并更改了一些方法的实现,一切都很好
猜你喜欢
  • 2017-04-18
  • 2011-10-15
  • 2021-09-26
  • 2016-10-29
  • 1970-01-01
  • 2022-06-12
  • 1970-01-01
  • 1970-01-01
  • 2016-10-11
相关资源
最近更新 更多