1

最初に仕様を説明します。私は主に ExtJS で記述され、Firefox ブラウザー v14 で実行されるアプリケーションの Selenium Webdriver テストを Java で記述しています。興味深いことに、Selenium はクリックしたい要素を見つけることができますが、クリックが実行されていないように見えるか、実行されている場合に目的の結果 (ポップアップが表示されます) が発生しません。また、Selenium IDE で、探している要素 (Xpath 経由で見つけたスパン要素) が存在することを確認しましたが、Selenium IDE では、クリックできないという同じ問題が発生します。

ボタンを手動でクリックすると、アップロードするファイルを尋ねるポップアップ ウィンドウが表示されます。また、スパンの親 'button' 要素、親 'em' 要素、親 'div' 要素などの他の要素も試しましたが、すべてうまくいきませんでした。

私を殺したのは、このアプリケーションの Selenium テストを何週間も書いていて、常にこのメソッドを使用してボタンをクリックすることができ、この特定のボタンでは機能しなくなったことです。

        WebElement uploadButton = driver.findElement(By.xpath("//span[contains(text(), 'Upload Popup')]"));
    uploadButton.click();

編集1:ボタン自体のコードが役立つかもしれないと思った

<button id="filefield-1158-buttonEl-btnEl" class="x-btn-center" autocomplete="off" role="button" hidefocus="true" type="button" style="background-color: transparent;">

ID は ExtJS によって作成された動的 ID であることに注意してください

4

2 に答える 2

1

多くの理由が考えられます。テストの実行中にデバッグすることをお勧めします。

Selenium Firefox インスタンスに FireBug をインストールすることができます。

File file = new File("firebug-1.8.1.xpi");
FirefoxProfile firefoxProfile = new FirefoxProfile();
firefoxProfile.addExtension(file);
firefoxProfile.setPreference("extensions.firebug.currentVersion", "1.8.1"); // Avoid startup screen

WebDriver driver = new FirefoxDriver(firefoxProfile);

テストは JUnit 経由で (Eclipse などの IDE で) 起動できると思います。テストをデバッグ モードで起動し、ボタンをクリックする直前にブレークポイントを設定します。次に、FireBug を介して html コードを検査します。それはあなたにスタートを与えるかもしれません。

もう 1 つの可能性は、CSS クラス (By.className) またはセレクター (By.cssSelector) によってボタンを選択することです。

WebElement uploadButton = driver.findElement(By.className("x-btn-center"));
uploadButton.click();

ページに複数のボタンがある場合は、使用する必要があります

List<WebElement> buttons = driver.findElements(By.className("x-btn-center"));
WebElement uploadButton = buttons.get(index);
uploadButton.click();
于 2012-12-21T18:41:21.380 に答える
0

これを試してください:

     driver.findElements(By.xpath("//button[@class='x-btn-center']").click()

また

     driver.findElements(By.xpath("//*[@class='x-btn-center']").click()
于 2012-12-23T10:36:15.443 に答える