2

このコンポーネントをWeb アプリケーションで使用しています。

ページには、いくつかのボタンを含むツールバーが表示されます。いずれかのボタンをクリックすると、ログがログバーに書き込まれます。

問題は、Selenium IDE を使用してこの動作を記録できないことです。IDE はコマンドを作成しますが、コマンドを実行しても何も起こりません。エラーもログに記録されません。

何が問題なのですか?

4

8 に答える 8

1

サイトhttp://www.dhtmlx.com/docs/products/dhtmlxToolbar/samples/01_init/08_events.htmlにアクセスしました

以下のように xpath チェッカーを使用して xpath を取得しました。

切る -id('toolbarObj')/x:div[5]/x:div[11]/x:div

コピー -id('toolbarObj')/x:div[5]/x:div[12]/x:div

貼り付け -id('toolbarObj')/x:div[5]/x:div[13]/x:div

変更された xpath は次のように使用できます。

selenium.click("//div[@id='toolbarObj']/div[5]/div[11]/div");//Cut
selenium.click("//div[@id='toolbarObj']/div[5]/div[12]/div");//Copy
selenium.click("//div[@id='toolbarObj']/div[5]/div[13]/div");//Paste
于 2012-06-26T09:58:58.583 に答える
1

これが役立つかどうかはわかりませんが、確かに役に立ちました

入力する必要があるテキストがある場合は、要素またはボタンをクリックします

最初に " sendKeys" を使用して入力し、次に必要な要素を "クリック" する方法が 2 つあります。たとえば、flipkart.com「type」は機能しませんが、「sendKeys」は機能します

2 つ目は、「type」を使用してから、入力したフィールドに「sendKeys」を使用してクリックする代わりに Enter キーを押し、値に「」を含める必要があることです${KEY_ENTER}

例えば、あなたをより良くするのに役立ちます 最初の方法: 最初の方法

2 番目の方法: 2番目の方法

幸いなことに両方とも私のために働いた

于 2016-11-14T06:04:12.513 に答える
0

これを行うための完全なコードは次のとおりです。

package riponalwasim.selenium.webdriver.stackoverflow;

import java.util.concurrent.TimeUnit;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

public class CutCopyPaste {
    WebDriver driver;
    String baseUrl;
    @BeforeClass
    public void setUp() throws Exception {
        baseUrl = "http://www.dhtmlx.com/docs/products/dhtmlxToolbar/samples/01_init/08_events.html";
        driver = new FirefoxDriver();
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
        driver.get(baseUrl);
    }

    @Test
    public void testCutCopyPaste() throws Exception {
        driver.findElement(By.xpath("//div[text()='New']")).click();
        driver.findElement(By.xpath("//div[@id='toolbarObj']/div[5]/div[11]/div")).click();
        driver.findElement(By.xpath("//div[@id='toolbarObj']/div[5]/div[12]/div")).click();
        driver.findElement(By.xpath("//div[@id='toolbarObj']/div[5]/div[13]/div")).click();
    }

    @AfterClass
    public void tearDown() throws Exception {
        driver.quit();
    }
}
于 2012-06-27T09:01:15.410 に答える
0

セレンスクリプトの開始が速すぎる可能性があります。使用しているコンポーネントは、すべてのボタンに対して大量のHTMLを生成すると思います。スクリプトの開始が早すぎる場合は、htmlがまだ生成されていない可能性があります。セレンスクリプトの実行速度を遅くしてみてください。

また、seleniumはXPathを使用してページ内のHTML要素にアクセスすると思います。セレンスクリプトが正しいHTMLノードを参照していることを確認しますか?これを確認するには、Seleniumスクリプト(XML)を確認し、ボタンに使用されているXPathセレクターを確認します。

また、セレンはクリックできないターゲット(ボタンはdiv)でクリックイベントを発生させることができない場合もありますが、そうではないと思います。あなたはしかし試すことができます。

于 2012-04-11T19:58:08.770 に答える
0

div の代わりに img 自体をクリックするとどうなりますか? 例えば:

//img[contains(@src, 'paste')]

Selenium IDE で [検索] をクリックすると、実際にページ上の何かが強調表示されますか?

于 2012-04-17T09:30:17.950 に答える
0

IDE は、javascript が項目をページにロードしたときの記録が完全ではないため、手動の支援が必要になる場合があります。

要素をクリックする前に、要素が読み込まれるのを待ってみましたか? waitForElementPresent | waitForElementPresent のように、waitForElementPresent コマンドを挿入することをお勧めします。#toolbarObj をクリックしてみてください。

于 2012-06-02T01:04:40.207 に答える