Java 如何在Selenium自动测试中管理Gmail中COMPOSE按钮的动态id

Java 如何在Selenium自动测试中管理Gmail中COMPOSE按钮的动态id,java,xpath,css-selectors,selenium-rc,selenium-webdriver,Java,Xpath,Css Selectors,Selenium Rc,Selenium Webdriver,Gmail的COMPOSE按钮的id是动态的。因此,当单击时,Selenium IDE会记录不同的xpath,如下所示: //div[@id=':lw']/div/div , //div[@id=':as']/div/div 使用id或xpath的替代方法是什么 以下是“撰写”按钮的HTML: <div class="aic" id=":as"><div class="z0"><div tabindex="0" role="button" class="T-I J

Gmail的COMPOSE按钮的id是动态的。因此,当单击时,Selenium IDE会记录不同的xpath,如下所示:

//div[@id=':lw']/div/div , //div[@id=':as']/div/div
使用id或xpath的替代方法是什么

以下是“撰写”按钮的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>
COMPOSE

使用下面的代码在Gmail中撰写

ClickAt   |  //div[text()='COMPOSE']

使用下面的代码在Gmail中撰写

ClickAt   |  //div[text()='COMPOSE']

您应该使用CSS类。它们在Gmail中不会改变,并且这个解决方案不会依赖于语言环境

对于合成按钮,类为“T-I J-J5-Ji L3”

使用jQuery的示例如下:

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

     alert('Compose button clicked');

});

您应该使用CSS类。它们在Gmail中不会改变,并且这个解决方案不会依赖于语言环境

对于合成按钮,类为“T-I J-J5-Ji L3”

使用jQuery的示例如下:

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

     alert('Compose button clicked');

});
最好在这里使用

Sikuli脚本自动执行屏幕上显示的任何内容。它使用图像 识别并控制GUI组件。它在以下情况下很有用: 无法轻松访问GUI的内部或源代码

最好在这里使用

Sikuli脚本自动执行屏幕上显示的任何内容。它使用图像 识别并控制GUI组件。它在以下情况下很有用: 无法轻松访问GUI的内部或源代码


以下WebDriver Java代码应该可以很好地工作:

driver.findElement(By.xpath("//div[text()='COMPOSE']")).click();
将Selenium RC与Java结合使用:

selenium.click("//div[text()='COMPOSE']");

以下WebDriver Java代码应该可以很好地工作:

driver.findElement(By.xpath("//div[text()='COMPOSE']")).click();
将Selenium RC与Java结合使用:

selenium.click("//div[text()='COMPOSE']");

谷歌对大多数元素使用动态ID。尝试使用“撰写”文本,而不是使用ID

你可以用这样的东西。 Webelement=driver.findelementbypath(“//div[text()='COMPOSE']”); 元素。单击()


希望这能奏效

谷歌对大多数元素使用动态ID。尝试使用“撰写”文本,而不是使用ID

你可以用这样的东西。 Webelement=driver.findelementbypath(“//div[text()='COMPOSE']”); 元素。单击()


希望这能奏效

我已使用Gmail帐户通过selenium automation成功发送了一份EML,下面是脚本请查找:

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

我已使用Gmail帐户通过selenium automation成功发送了一份EML,下面是脚本,请查找:

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

你的欢迎…是的,它有很大的改进。你的欢迎…是的,它有很大的改进。如上所述,这应该是评论。如上所述,这应该是评论。