0

テストスクリプトをSeleniumRCからWebDriverに移行しています。これまでの最大の問題は、拡張クラスをWebDriver APIを使用するように書き直す必要があることです。これは気にしませんが、Byクラスは、主に、自分がどのタイプの要素であるかを明示的に指定する必要があるため、問題を引き起こします。 FindElementsメソッドを呼び出すときに使用します。そのため、要素タイプを暗黙的に決定するシングルクリックメソッドの代わりに、要素タイプ(css、XPath、name、idなど)ごとに次のようなメソッドを作成しました。

public void ClickByXPath(string xpath) { _driver.FindElement(By.XPath(xpath)).Click(); }

これは機能しますが、要素タイプごとに個別のメソッドをたくさん作成する必要があります(GetText、IsElementPresentなど)。スクリプトを書くとき、各メソッドの名前を入力するのは古くなります。なぜなら、それらは長く、どのタイプの要素がパラメーターとして使用されているかを確認する必要があるからです。こんなものが欲しいのですが…

public void Click(XPath locator) { ... }
public void Click(Name locator) { ... }

ただし、WebDriverを使用してこれを実行する最善の方法はわかりません。任意の提案をいただければ幸いです。前もって感謝します。

4

2 に答える 2

1

たとえば、Byパラメータをとる1つのメソッドを作成できます。

    public void Click(By by){ _driver.FindElement(by).Click(); }

と使用法

    Click(By.CssSelector("some string"));
    Click(By.XPath("some string"));
于 2012-11-28T17:12:38.970 に答える
0

Enum SelectorType{、、XpathなどCss}を使用し、(引数、タイプ)を持つワンクリックメソッドを使用StringSelectorTypeswitch-case、タイプに応じてさまざまなアクションを実行できます。

于 2012-11-26T18:01:17.657 に答える