如何在selenium java中参数化同一框架中的多个国家

vxf3dgd4  于 2021-08-25  发布在  Java
关注(0)|答案(1)|浏览(306)

我正在编写一个小脚本,使用页面对象模型在amazon上测试页面。这是很容易的,如果我只测试美国网站。我只需导航到petsupply页面,在那里我将添加更多方法来执行搜索、 checkout 和其他操作。但是亚马逊有多个国家拥有自己版本的同一petsupply页面(不同的元素和XPath)。我想为至少2个或更多的国家(例如澳大利亚和加拿大)做相同的测试,而不为每个国家编写新的脚本。这意味着我需要参数化国家和语言,并根据指定的位置执行操作。
这是我第一次使用这个网站,请原谅我说了很多话。另外,我在这里附上了我的代码片段和存储库。https://github.com/ultrabeep/sampleamazon.git (任何人都可以根据您的意愿进行增强和更改)。我将不胜感激。非常感谢。
eclipse截图

zvokhttg

zvokhttg1#

您可以创建一个系统属性,如下所示

System.setProperty("cukes.country",System.getProperty("cukes.country"))

在运行时配置中,您可以通过 -Dcukes.country 价值
在配置中,根据国家名称创建属性文件。
并在传递url之前在驱动程序类中提及。

String URL = Property.getProperty(System.getProperty("user.dir")+
'/src/com/qa/amazon/config'+Property.getVariable("cukes.country")+".properties","url");

对于公共元素,您可以像往常一样管理它,但对于不同的元素,您可能需要编写switch case语句,在switch中您需要传递的地方 cukes.country 值,并且在每个国家/地区声明中,您可以对这些特定于国家/地区的元素调用特定于国家/地区的方法。

相关问题