2017-01-29 13 views
0

を防止しますまたはそれを同期的に呼び出すことができます(つまり、bar())。は将来FindElements

テストが失敗すると、返された値FindElementが奇妙であることがわかります。

テストに合格すると、期待どおり、tagnametextプロパティが設定されている:

TagName = "button" 
Text = "Show Toast" 

しかし、それはnullを返すそしてようtexttag特性を有するIWebElementを返す交互う失敗した場合。

TagName = "System.Collections.Generic.Dictionary`2[System.String,System.Object]" 
Text = "button" 

答えて

0

webdriverをはないスレッドセーフです。実際にはスレッドセーフではないので、何かスレッド・アイを行うと怒ってしまいます。ドライバへのアクセスがlockステートメントすべてが、我々が期待作品と同期されると

[Test] 
public void AsyncWebDriver() 
{ 
    var o = new object(); 

    var homePage = new Uri("http://codeseven.github.io/toastr/demo.html"); 

    var driver = new InternetExplorerDriver(INTERNET_EXPLORER_OPTIONS); 

    driver.Navigate().GoToUrl(homePage); 

    Action bar =() => 
        { 
         lock (o) 
         { 
          Console.WriteLine(driver.Url); 
         } 
        }; 

    bar.BeginInvoke(null, null); 


    for (var i = 0; i < 5; i++) 
    { 
     lock (o) 
     { 
      var foo = driver.FindElement(By.Id("showtoast")); 
      foo.Click(); 
     } 
    } 
} 

修正がlock呼び出しほどにあります。