当前位置: 首页 > 知识库问答 >
问题:

TestNG参数不能识别字符串参数

葛磊
2023-03-14

我试图运行一个Selenium脚本与运行它的选项使用chrome或headless驱动程序。这可能不是正确的实现方法,但这是我的第一个想法。解决办法可能是完全避免这种情况...

public class Test1 {

@Parameters({"envDomain","driverName"})
@BeforeTest
public void setUp(@Optional("alpha1")String envDomain, @Optional("chrome")String driverName) {
    PropertiesCollection.selectDriver(driverName);
    PropertiesCollection.env_domain = envDomain;
}
public class PropertiesCollection {
public static WebDriver driver;
public static WebDriverWait wait;
public static String env_domain;

public static void selectDriver(String driverName) {

    if (driverName == "chrome") {
        String projectPath = System.getProperty("user.dir");
        System.setProperty("webdriver.chrome.driver", projectPath + "\\configs\\WebDrivers\\chromedriver_win32\\chromedriver.exe");
        PropertiesCollection.driver = new ChromeDriver();
    }

    if (driverName == "headless") {
        PropertiesCollection.driver = new HtmlUnitDriver();
    }

}

起作用的示例:

public class Test1 {

@Parameters({"envDomain"})
@BeforeTest
public void setUp(@Optional("alpha1")String envDomain) {
    PropertiesCollection.selectDriver("chrome");
    PropertiesCollection.env_domain = envDomain;
}

envDomain标记也按预期工作,所以我不确定为什么driverName参数会以不同的方式工作。

共有1个答案

艾嘉石
2023-03-14

好的,我可以通过改变if语句中的条件来解决我的问题。

public class PropertiesCollection {
public static WebDriver driver;
public static WebDriverWait wait;
public static String env_domain;

public static void selectDriver(String driverName) {

    if (driverName.equals("chrome")) {
        String projectPath = System.getProperty("user.dir");
        System.setProperty("webdriver.chrome.driver", projectPath + "\\configs\\WebDrivers\\chromedriver_win32\\chromedriver.exe");
        PropertiesCollection.driver = new ChromeDriver();
    }

    if (driverName.equals("headless")) {
        PropertiesCollection.driver = new HtmlUnitDriver();
    }

}

其他人也许能更深入地解释为什么这是有效的,为什么原来的不是。但我猜这与询问参数是否等于对象本身或是否等于字符串值有关...

 类似资料:
  • 问题内容: 我有一个关于JAXB的简单问题。这是示例代码: 如何初始化使用其他对象的String的输入元素? 问题答案: 您可以直接创建一个实例,或者如果您是从XML模式生成的Java模型,请在生成的类上使用convience方法。 schema.xsd 上面的演示代码基于从以下XML模式生成的Java模型。你会得到一个原因摆在首位属性是当你有一个既是元素和。 根 以下类是从中生成的,并且包含与您

  •  说明 调用方法: $.f2e.util.json2query(json); 函数说明: json转字符串参数 参数说明: 参数名 类型 说明 备注 json object json格式数据 无 脚本 <script> var a = {a:1,b:2,c:3} $.f2e.util.json2query(a) //输出:a=1&b=2&c=3 </script>

  • 问题内容: 我发现以下代码可以编译并运行: 这将打印出来,并且是UTF8的有效表示形式 据我所知,这是未记录的行为。从文档中: 当一个函数被声明为带有UnsafePointer参数时,它可以接受以下任何一项: nil,作为空指针传递 * UnsafePointer,UnsafeMutablePointer或AutoreleasingUnsafeMutablePointer值,必要时将其转换为Uns

  • 我试图从我的jar启动另一个Java进程,我使用的是ProcessBuilder: 错误:无法创建Java虚拟机。错误:发生致命异常。程序将退出。无法识别的选项:-类路径“C:\absoulte\path\library.jar;C:\absoulte\path2\library2.jar;C:\absoulte\path3\library3.jar”

  • 问题内容: 我在使用Python线程并在参数中发送字符串时遇到问题。 。 其中dRecieved是连接读取的一行的字符串。它调用了一个简单的函数,到目前为止,该函数仅具有打印“ hello”的一项工作。 但是我收到以下错误 232是我尝试传递的字符串的长度,因此我猜想它会将其分解成每个字符并尝试传递类似的参数。如果我只是正常调用该函数,它将很好用,但是我真的想将其设置为单独的线程。 问题答案: 您

  • 这可能是非常基本的东西,但我很难弄清楚我哪里出错了。 我试图从帖子正文中获取一个字符串,但“jsonString”只显示为null。我还想避免使用模型,但这可能是不可能的。我与PostMan接触到的一段代码是: 也许这是我在postman上做得不正确的地方,但我一直在尝试在body-x-www-form-urlencoded部分的值部分使用“=test”(如在有关此主题的其他问题中看到的),键为j