2

我正在用 Java 编写一个使用 WebDriver 提交表单的程序。有一个方法 findElement 允许您使用类名、css 选择器、id、链接文本、名称、部分链接文本、标签名称或 xpath 来选择元素。

这是我要选择的按钮:

<div class="editable" style = "width:82px;float:right;margin-right:10px;">
<a href="#" onclick="$('order_form').submit(); return false;" class="btn">
    <img class="btn" src="/myhuds/images/rd_images/btn_place_order.gif" alt="Place Order" width="82" height="17" border="0">
</a>
</div>

我不能使用类名,因为页面上有多个按钮。关于如何使用 findElement 方法选择此按钮的任何想法?

谢谢!

4

6 回答 6

0

您可以为按钮添加一个 id(可能是您页面中的所有按钮)并找到 -

driver.findElement(By.id("Your ID"));
于 2012-12-06T07:16:27.513 回答
0

对于您的具体情况,您可以使用 XPath 基于 img @alt 属性进行搜索

driver.findElement(By.xpath("//img[@alt='Place Order']")).click();
于 2012-12-06T08:41:42.263 回答
0

尝试使用这个。您可以添加一些浏览器插件来获取 XPath。

     driver.findElement(By.xpath("Your XPath"));
于 2012-12-05T23:43:06.020 回答
0

使用CSS selectors. 您可以在W3中找到简短的解释,并在此处找到几个示例:示例

因此,尝试使用driver.findElement(By.cssSelector(...));

于 2012-12-06T07:56:05.287 回答
0

步骤1:

使用可用的 DOM 结构为“下订单”
图像生成 CSS 选择器

css=a[onclick*='order_form'] > img[src*='btn_place_order.gif']

然后执行单击“下订单”图像。

driver.findElement(By.cssSelector("a[onclick*='order_form'] > img[src*='btn_place_order.gif']")).click();

于 2014-04-03T07:07:43.340 回答
0

以下示例应该有帮助:

html文件:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

<html>

<head>
    <title>Login Page</title>
</head>

<body>
    <h1 class="page-header">Login</h1>
    <ul class="errors"></ul>
    <div>
        <form class="login-form" action="checkLogin.html" method="post">
            <label for="username-field">Username1</label>
            <input type="text" name="username" class="username-field" />
            <br />
            <label for="password-field">Password1</label>
            <input type="password" name="password" class="password-field" />
            <br />
            <input type="submit" value="Submit" />
        </form>
    </div>
    <div>
        <form class="login-form" action="checkLogin.html" method="post">
            <label for="username-field">Username2</label>
            <input type="text" name="username" class="username-field" />
            <br />
            <label for="password-field">Password2</label>
            <input type="password" name="password" class="password-field" />
            <br />
            <input type="submit" value="Submit" />
        </form>
    </div>
</body>

</html>

要找到 Password1 的输入字段:

WebElement passwordField1: driver.findElement(By.cssSelector("div:nth-child(3) .password-field"));

要找到 Password2 的输入字段:

WebElement passwordField2: driver.findElement(By.cssSelector("div:nth-child(4) .password-field"));

在此处了解有关 nth-child() 选择器的更多信息。

于 2017-02-15T09:23:04.337 回答