したがって、4つのシナリオを追加した.featureファイルが1つあります。C#Selenium WebDriverは連続して実行されるとテストに失敗しますが、個別に実行すると成功します
.featureファイル
Feature: BleKeys beheren
Het beheren van BLE-keys
d.m.v. de WebInterface.
@notfs
Scenario: BLE-key toevoegen aan database
Given I'm at the BleKey/Create page.
And I have entered acceptable BLE-data.
When I press Create
Then The BLE-key should be added to the database.
@notfs
Scenario: BLE-key data aanpassen
Given There is a BleKey in the database.
And I'm at the BleKey/Edit page of that BleKey
When I edit the MAC-Adress
And I edit the Conditional Report
And I edit the Flag
And I edit the Distance
And I edit the Reference
And I edit the ExtraCfg
And I press Save
Then The BleKey should have changed correctly.
@notfs
Scenario: BLE-key data verwijderen
Given There is a BleKey in the database.
And I navigate to the Delete page of that BleKey
When I press Delete
Then The BleKey should be deleted.
@notfs
Scenario: BLE-key data van 1 sleutel bekijken
Given There is a BleKey in the database.
And I navigate to the Details page of that BleKey
Then The correct data of that BleKey should be displayed
は、今私は、Visual Studio(ReSharperのユニットテストセッションウィンドウ)で、これらのテストを実行すると、個別にそれらはすべて成功しますが、最初の連続実行すると成功しますが、任意の連続したテストが失敗しました次の例外があります。
OpenQA.Selenium.WebDriverException:予期しないエラー。 System.Net.WebException:リモートサーバーに接続できません---> System.Net.Sockets.SocketException:ターゲットマシンが積極的にそれを拒否したため、接続できませんでした127.0.0.1:5595
試験を見ることができると、それはのベースURLにナビゲートされるべきであるいくつかのローカルIP-アドレスに接続しよう:
http://localhost:58759/ +コントローラ+方法は、試験に応じ。
私はステップファイルでWebDriverインスタンスを作成します。これと同じように:のためにそう
Driver.Navigate().GoToUrl(Adress + BleKeyIndexUrl);
どこ住所= "http://localhost:58759/"
そしてBleKeyIndexUrl = "BleKeys /インデックス"
:
public class BleKeyBeherenSteps
{
public static RemoteWebDriver RemoteWebDriver = new ChromeDriver();
public WebinterfaceSelenium SeleniumTest = new
WebinterfaceSelenium(RemoteWebDriver);
public Navigate Navigate = new Navigate(RemoteWebDriver);
public Check Check = new Check(RemoteWebDriver);
public Edit Edit = new Edit(RemoteWebDriver);
public Delete Delete = new Delete(RemoteWebDriver);
private readonly BeheerContext _db = new BeheerContext();
}
そして、私の方法で私はこのようなナビゲートWebDriverがlocalhostのアドレスの代わりにローカルのIPアドレスにナビゲートする何らかの理由があります。
編集:すべてのテストの後、ドライバを閉じます。Driver.Quit(); 私の推測では、最初のテスト後何らかの理由でDriver.Urlプロパティが失われることがあります。
コンストラクタのプロパティを初期化してRemoteWebDriverを非静的にしましたが、今はうまく動作します。お返事ありがとうございます – Jeroen
私は静的フィールドと変数を読む必要があります:) – Jeroen
@Jeroen:申し訳ありませんが、リモートマシン上のポートの問題を解決できません。専用のテストマシンで一貫したテストローカルポート番号を設定することが問題になっているので、現在の問題は新しいSOの質問が必要なところまで進化していることをお勧めします。私はdevのWebサイトで使用されているポート番号がWebプロジェクトのWebタブで定義されていることをすでに知っていると思いますか?これはDebug/Releaseの違いですか? – camelCase