2

我们在我们的Web 应用程序中使用这些组件。

在页面上,您可以看到一个包含一些按钮的工具栏。如果您单击任何按钮,则会将日志写入日志栏中。

问题是我无法使用 Selenium IDE 记录此行为。IDE 创建一个命令,但是当我执行该命令时没有任何反应。甚至没有记录错误。

可能是什么问题呢?

4

8 回答 8

3

以慢速执行你的脚本

使用 xpath 来识别元素

clickAt  | //div[text()='New']

单击新建按钮

于 2012-04-12T05:31:09.517 回答
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”键入然后“单击”所需的元素将起作用。例如,在flipkart.com“类型”中不起作用,但在“ sendKeys”中起作用

其次是使用“类型”然后按回车而不是单击使用“sendKeys”在目标中具有您正在输入的字段并且值必须具有“ ${KEY_ENTER}

例如将帮助您更好的 第一种方法: 第一种方法

第二种方法: 第二种方法

幸运的是,两者都为我工作

于 2016-11-14T06:04:12.513 回答
0

可能是硒脚本启动得太快了。我猜您使用的组件会为所有按钮生成一堆 HTML。如果脚本启动得太早,可能还没有生成 html。尝试更慢地运行 selenium 脚本。

另外:我认为 selenium 使用 XPath 来获取页面中的 HTML 元素。您确定 selenium 脚本指的是正确的 HTML 节点吗?您可以通过查看 selenium 脚本(它是 XML)并查看它用于按钮的 XPath 选择器来检查这一点。

也可能是 selenium 可能无法在不可点击的目标上触发点击事件(按钮是 div),但我认为情况并非如此。不过你可以试试。

于 2012-04-11T19:58:08.770 回答
0

如果您单击 img 本身而不是 div 会怎样?例如:

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

当您单击 Selenium IDE 上的“查找”时,它实际上是否突出显示了页面上的某些内容?

于 2012-04-17T09:30:17.950 回答
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

IDE 在记录 javascript 已将项目加载到页面时并不完美,因此可能需要手动帮助。

您是否尝试过等待元素加载后再尝试单击它?我可能会建议插入一个 waitForElementPresent 命令,例如 waitForElementPresent | #toolbarObj 在尝试点击之前。

于 2012-06-02T01:04:40.207 回答
-2

javascript 工作需要超过 1ms 的时间。所以只需添加“暂停 1000”

于 2017-09-05T08:43:08.877 回答