うーん... jsインジェクションのようなチートを使用します(jQueryのサポートが含まれている場合)。例えば
String cssSelector="...blablabla....";
JavascriptExecutor js = (JavascriptExecutor) driver;
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("var x=$(\'"+cssSelector+"\');");
stringBuilder.append("x.click()");
js.executeScript(stringBuilder.toString());
2番目のアプローチ(解決策):
DOMモデルを使用してクリックする要素を見つけようとしますdocument.getElementsByTagName
-これにより、見つかった要素の配列が返され、Firefoxのコマンドラインを使用して必要な要素を簡単に見つけることができます. だからあなたの要素は次のようになります:
document.getElementsByTagName[n]
どこで n - 見つかった配列内の要素の順序document.getElementsByTagName
document.getElementsByTagName
以下のメソッドのコードは、パラメーター tagName - 要素を検索するタグの名前であり、argNum は、 n - 要素の順序を取得するために配列の全長から減算する必要がある数値です。
public void jsDirectClickUsingDOM_GEBTagName(String tagName,int argNum) throws IOException {
JavascriptExecutor js = (JavascriptExecutor) driver;
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("document.getElementsByTagName(\'"+tagName+"\')[document.getElementsByTagName(\'"+tagName+"\').length-"+argNum+"].click()");
js.executeScript(stringBuilder.toString());
}
これはとにかく動作するはずです。それがあなたにとって明確になることを願っています:)