2016-06-21 11 views
0

リンクをクリックするオートメーションステップを記述しようとしていますが、リンクをターゲットにするために必要なロケータはtitle属性の終わりその理由と同じという名前になりますいくつかは、同じタイプの複数のリンクがあるかもしれないこと、私が探していますタイトルのこのセクションは、これは既存の一意であることが保証これらのリンク内部専用ビット(ない私の呼び出しです私はテストを書いています)。私は、このメソッドを使用して、リンクのロケータを見つける何の問題もありません。Selenium Webdriver - CSSロケータで保存された文字列を使用する

注:コードのいくつかの要素が原因私の雇用者のデータセキュリティ制限に改正されました。

私が探しているタイトルの末尾の参照番号が変更される可能性が
@FindBy(css = "#id .Content form > a[title$='12345678']") 
WebElement linkName; 

、他のデータ入力に応じて、私が何をそう、私の自動化スイートthorughout複数の場所で使用されますやろうとすると、私のトラブルが始まる場所である、スイートの非常に開始時に文字列としてその数を保存し、ロケータを持って、それを必要とする任意の他の領域、それを参照です。私はこれをしようとすると、私はエラー、通常は構文エラーを取得しておく。..文字列を参照して動作するようにロケータを取得することができないように見えます。

@FindBy(css = "#id .Content form > a[title$='%s']", titleVariable) 
WebElement linkName; 

これを複数回並べ替えてみましたが、実際のフォーマットに戻すことができませんでした。どんな提案も大歓迎です。

私は雇用主の事業の性質上、上記のようにデータセキュリティの制限のためにあまりにも多くの詳細を与えることはできませんので、より多くの方法で事を説明しなければなりませんでした持ってる。あなたはこれを行うことができ、このクラスでwebdriverをオブジェクトがある場合

答えて

1

最初に、uが、ここで一定の変数を使用している必要があります。これ以下のようなコードを使用します。

final String titleVariable = "ur title"; 

@FindBy(css = "#id .Content form > a[title$='"+titleVariable+"']") 
WebElement linkName; 
+0

ありがとうございました!これは完璧に働いた – Jsmith2800

0

:すべての

String titleVariable = "Your Title"; 
String cssSelector = "#id .Content form > a[title$='" + titleVariable + "']"; 

WebElement linkName = driver.findElement(By.cssSelector(cssSelector)); 
関連する問題