WebDriver
〜ThreadLocal<WebDriver>
〜MarionetteDriver
のローカルインスタンスの型キャストを実現する方法はありますか?私のコードはこのようになりますWebDriver:MarineetteDriverをThreadLocalに変換するには<WebDriver> TestNGで並列テストで使用する場合
public class Base_Class
{
protected ThreadLocal<WebDriver> Driver = null;
@BeforeMethod
@Parameters("BrowserName")
public void setUp(@Optional("Firefox") String BrowserName) throws MalformedURLException
{
Driver = new ThreadLocal<WebDriver>();
if(BrowserName.equalsIgnoreCase("FireFox"))
{
System.setProperty("webdriver.gecko.driver", "..//BrowserDrivers//wires");
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette", true);
Driver = new <ThreadLocal<WebDriver>> MarionetteDriver(capabilities);
}
else if(BrowserName.equalsIgnoreCase("Chrome"))
{
System.setProperty("webdriver.chrome.driver", "..//BrowserDrivers//chromedriver");
Driver = new <ThreadLocal<WebDriver>>ChromeDriver();
}
}
public WebDriver getDriver()
{
return Driver.get();
}
@AfterMethod
public void closeBrowser()
{
getDriver().quit();
}
}
すべてのテストケースは、これをBase_Classよりも上に拡張した別のクラスで定義されています。
Driver = new <ThreadLocal<WebDriver>> MarionetteDriver(capabilities); and Driver = new <ThreadLocal<WebDriver>>ChromeDriver(); lines as Type mismatch: cannot convert from MarionetteDriver to ThreadLocal<WebDriver>
@エラーを私はUbuntu 14.04
OS上Chrome Version 52.0.2743.116 (64-bit)
とFireFox Version 48.0
バージョンのブラウザを使用していますし、Selenium version selenium-server-standalone-2.53.0
がtestng.xml
ファイルを介して並列テストの実行を達成するために募集にあたって..
任意のヘルプ高く評価されます。
を教えて、あなたはドライバーのためにThreadLocalを使用している理由は何ですか?ありがとうございます。 – Grasshopper
@Grasshopper:WebDAVを介してWebDriverを使用して、複数の異なるブラウザインスタンスで並列テストを実行しようとしています。ドライバインスタンスが各TCによって上書きされているため、TCのアサーションがティアダウンメソッドで失敗しています。そのため、TCのアサーションを渡すために、各スレッドのWebDriverのローカルインスタンスを作成することが必要でした。 –