0

いくつかの質問を検索しましたが、問題がわかりませんでした:

2 つのシステムの構成ページをテスト/検証したいと考えています。しかし、私は 3 つの課題に直面しました。

1.2つのシステムのページは一見同じように見えますが、実際には同じアイテム(テキスト、ドロップダウンリスト、ラジオボタンなど)のdom/xPath情報はまったく異なります。たとえば、ページ上の 2 つのシステムの「デバイス名」フィールドには、sys1 の xPath が「//input/abc」であり、sys2 の xPath が「//input/xyz」であるなど、2 つの異なる xPath があります。

2.ページが動的に生成される場合があるため、1 つのシステムの同じ項目の dom/xPath が異なる時点で異なる場合があります。

3. 1 と 2 に基づいて、すべてのシステムで実行する 1 つのスクリプトを作成することは困難です (将来的にはシステムが増える予定です)。システムごとに異なる xpath/dom データベースを定義したくありません。

私の質問は:

1. Selenium は、ページ上にいくつの「テキスト フィールド」「ドロップダウン リスト」「ラジオ ボタン」オブジェクトを返すことができますか?

2.Selenium は質問 1 の各オブジェクトの xPath/dom を返すことができますか?

セレンがすべてのオブジェクトと各オブジェクトの xPath/dom 情報を返すことができることを願っています。これにより、マッピングを作成してさまざまなシステムを呼び出すことができます (「同じ」オブジェクトのインデックス/場所を比較することで、現在どの xPath が使用されているかを判断できます)。

すべてのコメント/ヘルプに感謝します。

4

2 に答える 2

0

c# はわかりませんが、Java には driver.findElements(By.xpath/css(xpath/css value))) があります。これにより、ページ内の要素の数が返されます。見つけなければならないテキストボックスの場合は、次のようなものを使用できます

driver.findElements(By.xpath(//input[@type='textbox']).size();

これは、ページ内のテキストボックスの数を返します。

質問 2 の場合 - これを確認してください。SOで同様の質問がありました。

Javascriptを使用して要素のXPath位置を計算するには?

于 2012-06-18T05:10:24.087 に答える
0

このような目的でLinqを使用できます。たとえば、次の方法ですべての入力要素を取得できます。

IWebDriver driver = new FirefoxDriver();
var inputElements = driver.FindElements(By.TagName("input")); // get all input elements
inputElements.Count(); // get how many input elements there are

また:

IWebDriver driver = new FirefoxDriver();
var inputElements = driver.FindElements(By.XPath("//input")); // get all input elements
inputElements.Count(); // get how many input elements there are
于 2012-06-18T08:43:17.433 に答える