【问题标题】:Webelement identification in XpathXpath 中的 Web 元素识别
【发布时间】:2014-02-09 17:16:42
【问题描述】:

我正在处理xpath,我对此有疑问。以下是获取文本框输入的相关 html 代码:

<div id="formId:fld_SHIPPING_ADDRESS__PHONE_PRIMARY_id_wrapper" 
     class="fld_SHIPPING_ADDRESS__PHONE_PRIMARY_id ">
  <label id="formId:lbl_SHIPPING_ADDRESS__PHONE_PRIMARY_id" style="" 
         for="formId:fld_SHIPPING_ADDRESS__PHONE_PRIMARY_id">
  **<input id="formId:fld_SHIPPING_ADDRESS__PHONE_PRIMARY_id" type="text" maxlength="20" 
           value="" name="formId:fld_SHIPPING_ADDRESS__PHONE_PRIMARY_id"/>**
  <span id="formId:fld_SHIPPING_ADDRESS__PHONE_PRIMARY_id_msg"/>
</div>

我把 Xpath 写成

 driver.findElement(
     By.xpath("//input[@id = 'formId:fld_SHIPPING_ADDRESS__PHONE_PRIMARY_id')]"))
.sendKeys("test");

这是 html 中唯一匹配的节点,当我运行它时出现以下错误

线程 "main" org.openqa.selenium.NoSuchElementException 中的异常:无法定位元素:{"method":"xpath","selector":"//input[@id = 'formId:fld_SHIPPING_ADDRESS__PHONE_PRIMARY_id']" } 命令持续时间或超时:104.80 秒 有关此错误的文档,请访问:http://seleniumhq.org/exceptions/no_such_element.html

请帮忙!

【问题讨论】:

    标签: xpath selenium-webdriver


    【解决方案1】:

    我刚刚检查了你的源代码,发现你的输入框包含在一个框架内。

    使用以下代码:-

    //switch to the frame
    driver.switchTo().frame("envoy");   
    
    //get the phone number field and enter data 
    driver.findElement(By.id("formId:fld_SHIPPING_ADDRESS__PHONE_PRIMARY_id")).sendKeys("");
    

    在上面的代码中,我使用了 id 作为定位器。我建议您在 xpath 上使用名称或 id。您正在测试的 Web 应用程序使用正确的 id 和名称标签进行了精美的编码!!

    如果这对你有用,请告诉我。

    【讨论】:

    • switchTo().frame("envoy");为我工作。非常感谢您的宝贵意见
    【解决方案2】:

    您可以先修复代码中的以下问题:

    1. 用对应的&lt;/label&gt;标签关闭&lt;label&gt;标签。

    2. 去掉@id =字符串中的两个空格。

    如果以上解决了您得到的NoSuchElementException,那么您可能还需要将.sendKeys("test") 扩展为.sendKeys("test").submit(),以完成此问题。

    【讨论】:

    • 我做了必要的更改,即使这样我在运行后也收到相同的错误消息
    • 你能发布你想要自动化的网页的 URL 吗?
    • overstock.com - 一旦您点击“结帐”,您将被重定向到结帐页面,我正在尝试将值输入“主要电话号码”
    • 没有这个选项checkout
    猜你喜欢
    • 2018-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-20
    • 2018-07-30
    • 2014-11-27
    相关资源
    最近更新 更多