0

GmailのCOMPOSEボタンのIDは動的です。したがって、クリックすると、SeleniumIDEによって次のように異なるxpathが記録されます。

//div[@id=':lw']/div/div , //div[@id=':as']/div/div

idまたはxpathを使用する別の方法は何でしょうか?

以下は、COMPOSEボタンのHTMLです。

<div class="aic" id=":as"><div class="z0"><div tabindex="0" role="button" class="T-I J-J5Ji L3 T-I-KE" style="-moz-user-select: none;" gh="cm">COMPOSE</div></div></div>
4

6 に答える 6

2

GmailのCOMPOSEには以下のコードを使用してください

ClickAt   |  //div[text()='COMPOSE']
于 2012-06-21T10:20:21.377 に答える
1

CSSクラスを使用する必要があります。Gmailでは変更されず、このソリューションはロケールに依存しません。

作成ボタンのクラスは「TIJ-J5-JiL3」です。

jQueryを使用した例:

$('.T-I.J-J5-Ji.L3').live('click', function () {

     alert('Compose button clicked');

});
于 2012-06-25T15:20:29.723 に答える
0

ここではSikuliを使用することをお勧めします。

Sikuli Scriptは、画面に表示されるものをすべて自動化します。画像認識を使用して、GUIコンポーネントを識別および制御します。GUIの内部コードまたはソースコードに簡単にアクセスできない場合に便利です。

于 2013-03-08T05:38:25.427 に答える
0

次のWebDriverJavaコードはうまく機能するはずです。

driver.findElement(By.xpath("//div[text()='COMPOSE']")).click();

JavaでのSeleniumRCの使用:

selenium.click("//div[text()='COMPOSE']");
于 2013-03-22T05:03:55.703 に答える
0

googleは、ほとんどの要素に動的IDを使用します。IDを使用する代わりに、「作成」テキストを使用してみてください。

あなたはこのようなものを使うことができます。Webelement element = driver.findElementByXpath( "// div [text()='COMPOSE']"); element.click();

これがうまくいくことを願っています!

于 2014-02-16T05:22:24.290 に答える
0

Gmailアカウントを使用したセレンの自動化によってEmilを正常に送信しました。以下のスクリプトを見つけてください。

WebDriver driver = new FirefoxDriver();

String baseUrl = "http://www.google.co.in/";
selenium = new WebDriverBackedSelenium(driver, baseUrl);

driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
driver.findElement(By.xpath("//div[@id=':jb']/div[@class='z0']/div")).click(); // Compose

selenium.type("//div[@class='wO nr l1']//textarea[@name='to']", "vikramn@gmail.com"); // For To 
selenium.type("//div[@class='aoD az6']//input[@name='subjectbox']", "Wanted to SAY HI"); // For Subject
selenium.type("//div[@class='Ar Au']/div[@class='Am Al editable LW-avf']", "Hi Vikram");// For Message body
selenium.click("//div[@class='J-J5-Ji']/div[@class='T-I J-J5-Ji aoO T-I-atl L3']"); //send
于 2014-11-26T11:11:55.657 に答える