IDの一部のみをキャプチャする方法は?
-
03-07-2019 - |
質問
ランダムに生成される要素のIDをキャプチャしようとしています。このように要素IDの値を正常にキャプチャできます...
| storeAttribute | //div[1]@id | variableName |
これで変数は次のようになります...
divElement-12345
「divElement-」を削除して、残された変数が「12345」になるようにして、後でそれを使用してそれに関連付けられている「form-12345」要素を選択できるようにします...
| type | //tr[@id='form-${variableName}']/td/form/fieldset/p[1]/input | Type this |
どうすればこれを達成できますか?
解決
Seleniumには、XPathとCSS Selectorの2つのオプションがあります。 CSSセレクターは、FireFoxとIEの両方でテストを行うのに適していると読みました。 Selenium IDEの最新バージョン(2009年3月5日)を使用して、JavaScript式を評価するstoreEvalを使用して、JavaScript文字列関数にアクセスできるようになりました。
XPath:
storeAttribute | //div[1]@id | divID
storeEval | '${divID}'.replace("divElement-", "") | number
type | //tr[@id='form-${number}']/td/form/fieldset/p[1]/input | Type this
CSSセレクター:
storeAttribute | css=div[1]@id | divID
storeEval | '${divID}'.replace("divElement-", "") | number
type | css=tr[id='form-${number}'] > td > form > fieldset > p[1] > input | Type this
他のヒント
XPATHには、問題を解決する多くの機能があります。 " divElement-"を想定変わらない定数であり、XPath 2.0を使用していることをお勧めします。
substring-after(div [1] / @ id / text()、" divElement-")
所属していません StackOverflow