当前位置: 首页 > 知识库问答 >
问题:

WebDriver-无法定位元素,正在提取网页输入字段

翟柏
2023-03-14

我试图从web页面中提取所有输入字段及其标题和元素详细信息,并将它们放在HashMap中,以便稍后在JUnit测试中使用,如

accountDetails.chooseField("Date of Birth");
accountDetails.changeValueTo(dateOfBirth);
<tbody>
    <tr>
    <tr class="subtitle">
    <tr>
    <tr class="subtitle">
    <tr>
    <tr class="subtitle">
    <tr>
    <tr>
    <td class="caption">Staff Member</td>
    <td>
    <input id="StaffMember" type="text" maxlength="6" size="6" value="" name="StaffMember">
    </td>
    <tbody>

这就是提取类:

public class AccountDetails {

    WebDriver driver;
    WebElement accountDetailsTable;
    WebElement radioButton;

    HashMap<String, WebElement> fields = new HashMap<String, WebElement>();
    WebElement addCustomerButton;

    public AccountDetails(WebDriver driver) {
        this.driver = driver;
        driver.switchTo().defaultContent();
        driver.switchTo().frame(driver.findElement(By.name("officePane")));
        driver.switchTo().frame(driver.findElement(By.name("MainArea")));
        accountDetailsTable = driver.findElement(By.tagName("tbody"));
        addCustomerButton = accountDetailsTable.findElements(By.className("btn_def")).get(0);

        List<WebElement> tr = accountDetailsTable.findElements(By.tagName("tr"));

        for (WebElement el : tr) {
            List<WebElement> td = el.findElements(By.tagName("td"));
            if (td.size() > 0) {
                fields.put(td.get(1).getText(), td.get(0).findElement(By.tagName("input")));
            }
        }
    }

共有1个答案

狄承望
2023-03-14

为了捕捉所有输入,我通常这样做:

List<WebElement> inputList = driver.findElements(By.xpath("//input"));

在你这样使用之后(愚蠢的例子:d):

void showInputValue (List<WebElement> c) {
    for (WebElement e : c){
        Systeme.println(e.getAttribute("value"));
    }
}
 类似资料:
  • 我试图引用并单击网页上的元素。 我们应该能够使用简单的XPath进行引用。例如 然而,这似乎并不奏效。 我使用的chrome扩展表示该元素不存在。 我的代码找不到元素。 下面是我使用Selenium web驱动程序的Java代码。 以下是错误: 太奇怪了!关于为什么我不能引用元素,或者为什么xPath不exist的任何想法。

  • 我正在尝试采取一些分数从网站,而使用WebDriver。到目前为止我尝试了XPath,CSS,Classname,但是,有时它定位项目,有时它不定位。 这是我一直试图带它的HTML代码: 这是我的代码(到目前为止我已经尝试过了): 其他版本: 并且我也尝试了子类(在score classes下),但结果是一样的,有时可以定位元素,有时不能。 有什么建议吗? 更新:在我的代码中,我放了一些或仍然不能

  • 我正在使用Selenium导航一个网页,该网页有一个名为“mail”的链接,使用WebDriver(最近刚从RC切换到WebDriver)。我想单击该链接,但testcase总是失败,出现错误: 我可以看到元素出现在屏幕上,但测试用例仍然失败。 有没有人知道我在这里可能缺少什么或者找到链接元素的替代方法?

  • 我的应用程序中有一个,当我单击它时,它就会被启用。我可以使用CSS点击,但我不能输入文本时,它得到突出显示。

  • 我对selenium WebDriver非常陌生,我试图自动化一个页面,它有一个名为“删除日志文件”的按钮。使用FireBug我了解到,HTML被描述为 css选择器也使用firepath定义为“#DeletelogButton” 请帮助我解决这个问题。

  • 我在运行下面的代码时遇到“无法定位元素”异常。我的预期输出是的第一页。 如果我运行上面的代码,我会得到“无法定位元素异常”。我知道前面的Button元素不在Google搜索结果页面的第一页中,但是我想要抑制异常并获得下一步条件的输出。