2

Javaで次の作業を行うことができました:

DesiredCapabilities capabilities = DesiredCapabilities.chrome();
ChromeOptions options = new ChromeOptions();
options.addArguments("--disable-extensions");
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
ChromeDriver driver = new ChromeDriver(capabilities);
driver.get("https://www.google.com");

現在、Robot Framework 用の Selenium2Library の Java ポートを使用しています。上記と同様のことを行うにはどうすればよいですか?私は次のことを試しました:

${chrome_options}=    Evaluate    sys.modules['selenium.webdriver'].ChromeOptions()    sys, selenium.webdriver
${chrome_capabilities}=    Evaluate    sys.modules['selenium.webdriver'].DesiredCapabilities.CHROME    sys, selenium.webdriver
Call Method    ${chrome_options}    add_argument    disable-extensions
Set To Dictionary    ${chrome_capabilities}    ChromeOptions.CAPABILITY=${chrome_options}
Open Browser    https://www.google.com    Chrome    None    None        desired_capabilities=${chrome_capabilities}    None

ブラウザを開くたびにポップアップが表示されるので、chromeOptions を無効にする必要があります。上記のように、Java コードを使用してポップアップを非表示にすることができました。RFで同じことをすることができませんでした。

ご協力いただきありがとうございます。

4

2 に答える 2

0

desiredCapabilities 引数を介して Chrome オプションをJSON 文字列としてOpen Browserに渡します。Java で機能オブジェクトを作成する場合は、toJsonメソッドを使用して JSON オブジェクトを作成します。次に、JSON オブジェクトでgetAsStringメソッドを使用して文字列を取得します。次に、その文字列を desiredCapabilities の値として渡します。したがって、基本的には、目的の機能文字列を返す Java ユーザー キーワードを作成する必要があります。

# the below should return something similar to {'platform': 'ANY', 'browserName': 'chrome', 'version': '', 'chromeOptions': {'args': ['--disable-extensions'], 'extensions': []}, 'javascriptEnabled': True}
${desired caps}    Get Capabilities    # call custom keyword to get capabilities string
Open Browser    https://stackoverflow.com    gc    desiredCapabilities=${desired caps}

public String getCapabilities() {}
    DesiredCapabilities capabilities = DesiredCapabilities.chrome();
    ChromeOptions options = new ChromeOptions();
    options.addArguments("--disable-extensions");
    capabilities.setCapability(ChromeOptions.CAPABILITY, options);
    return capabilities.toJson().getAsString();
}
于 2016-08-01T16:38:38.897 に答える