2017-06-28 3 views
0

を使用して、私はこの非常に複雑xpathを持っている:セレン:アクセス素子スパンクラス名

/html/body/div/div/div[2]/div/div/div/div[3]/div/table[1]/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td[1]/table/tbody/tr/td/table/tbody/tr[1]/td/div/div/table/tbody[1]/tr[3]/td[2]/div/table/tbody/tr/td/table/tbody/tr/td[1]/span/input 

スパンがこのclass="z-combobox-designation z-combobox"を持っています。

span要素には、classを使用し、xpathではなく、アクセスする必要があります。 cssSelectorで可能ですか?誰かが私にそれをするヒントを与えることができますか?

答えて

0

はいあなたは化合物クラス

driver.findElement(By.cssSelector(".z-combobox-designation.z-combobox")); 

またはあなたがより多くのその要素の同じ種類を持っている場合span.z-combobox-designation.z-combobox

のようなクラスを使用してタグ名を指定するに基づいて要素を選択するには、このようにCSSセレクタを使用することができますあなたのHTMLに1つは、それの一意の親を考慮し、同じを見つける

例固有のIDを持つ要素の親tableが存在します。あなたはそのテーブルタグを念頭に置き、そのテーブルに基づいてspanを見つけることができます。

table#someid span.z-combobox-designation.z-combobox 
+0

私はそれが動作すると思う、それはエラーが発生しませんでした。ありがとうございました!ちなみに、スペースでクラスにアクセスするには、代わりにドット(。)を使用しました。スペースがあるクラスで実際にどのように処理されていますか? – Keeper

+0

実際にclassnameはclassnameにスペースが含まれていないと、その名前にスペースが含まれません。あなたの要素 'class =" z-combobox-designationz-combobox "には、CSSセレクタ' dot(。) 'に2つのクラス1 =' z-combobox-designation'と2 = 'z-combobox'があります。そのクラスを定義する – NarendraR

関連する問題