Java Selenium潜在Chrome Cookie,驱动程序,预期条件API问题



INTRO

我是一名使用JavaSelenium进行GUI测试的学生。我无法在桌面上运行测试用例,但我团队的其他成员可以。

正在使用什么技术/软件

我们使用JDK 14、IntelliJ Community Edition、用于回购的BitBucket和JUnit 4。

我在测试什么

我正在测试一个示例单页应用程序。我添加了一个任务,使用日期选择器添加日期,然后单击";添加项目";按钮但是,单击按钮未注册,任务也未添加到列表中。如果我重新启动计算机,第一个@Test工作,但第二个无法清除cookie,第二个@Test失败。

详细版本:

我从Surface Book 2来到Alienware R10桌面。我的团队能够顺利完成项目并运行所有测试用例。然而,我无法。同样的程序在我的SB2上工作,但在Alienware R10(AMD 3900处理器)上不工作。

我尝试了什么:

  • 我使用了本地存储的Chrome驱动程序和Boni Garcia的WebDriverManager。

  • 该项目是使用Maven构建的,所以我尝试使用这两种方法依赖项,并将selenium文件直接添加到我的项目中结构没有成功。

  • 我重新格式化了我的新R10,并尝试再次安装所有内容。我小心地将JAVA_HOME和MAVEN_HOME添加到我的系统路径中。

  • 在看到SOF上的一些帖子后,我尝试使用ChromeOptions,但没有其中一些也起作用。

  • 领导我们的QA开发人员试图帮助我大约40分钟搞不清楚。他说问题不在我的IDE,但它是Chrome cookie。我必须每天清理饼干这次我想运行一个JUnit Selenium测试。但是我的团队不必这么做,而且这并不总是有效的。

额外细节:

  • 我用AMD Ryzen 3900芯片买了一台新的Alienware R10。我添加了JAVA_HOME和MAVEN_HOME到我的Path和环境变量。

  • 我可能错误地添加到项目结构或依赖项中。

  • 这是我的第一篇文章,所以请让我知道我是否应该格式化如果我遗漏了任何重要的细节。

结论

我很担心我想在周末学习和练习,但我已经花了很多时间来解决这个问题。我的下一个想法是使用Eclipse而不是IntelliJ,看看是否可以在那里运行它。这里的任何建议都会很有帮助。

编辑

Eclipse也不起作用,并且存在同样的问题。这告诉我这个问题肯定与IDE无关。这可能是CPU或浏览器相关的问题。我还尝试通过WebDriverManger依赖关系使用其他驱动程序。

经过进一步的研究,如果我在代码中添加一些Thread.sleep()函数,而不是ExpectedConditions和元素visability,那么似乎可以注册点击并实际添加到Tasks中问题可能源于使用ExpectedConditions API,但这对我的队友有效,对我无效。这可能是AMD芯片组的问题吗

元素可见性在这里使用可能是错误的功能,但它在我的队友机器上确实有效,所以这就是为什么我没有尝试在那里寻找替代方案。我们使用的函数查看DOM树,我们可能希望在浏览器上查看可见性。我很难测试出来,因为我没有笔记本电脑。

我重新格式化了我的旧笔记本电脑,这样它就可以出售了,因为我安装了这台新电脑,但我会用它来尝试另一个功能,看看它是否会带来不同的结果。

第2版:

观察/猜测

我猜问题出在AMD 3900 CPU上。Thread.sleep()将行为更改为至少单击我的"添加项目"按钮。它仍然没有通过我的测试,ExpectedConditions API仍然不能工作。

我将返回Alienware R10,并将获得英特尔CPU R10或构建我自己的PC

这只是一个有根据的猜测,基于我和我同事的机器之间的行为差异,他们有英特尔,我有AMD。

如果您面临类似的问题,请确认您在此线程中使用的是AMD还是Intel。它也会帮助其他人。我确信有解决办法,但它们对我不起作用。我还尝试使用ChromeOptions禁用GPU和其他一些选项。

然而,没有成功,除非有更好的答案,否则我会责怪AMD 3900 CPU。

谢谢,如果你面临类似的问题或找到了更好的答案,请为本帖子投稿。任何猜测都可能有所帮助。

我同意你团队的QA。这与IDE无关。我怀疑操纵WebDriverDesiredCapabilities会解决这个问题。鉴于您使用的是bonigarcia WebDriverManager依赖项,我建议您至少尝试下面的代码,看看WebDriver是否可以正确创建。

public static void main(String[] args) {
WebDriverManager.chromedriver().setup();
DesiredCapabilities chromeDesiredCapabilities = DesiredCapabilities.chrome();
WebDriver webdriver = new ChromeDriver(chromeDesiredCapabilities)
}

相关内容

  • 没有找到相关文章

最新更新