【问题标题】:Issue finding elements using Selenium::Remote::Driver in Perl在 Perl 中使用 Selenium::Remote::Driver 查找元素的问题
【发布时间】:2015-10-12 21:39:40
【问题描述】:

作为测试脚本的一部分,我必须重定向到第三方托管的支付页面。但是,当我尝试查找输入框元素时,错误会略有不同,具体取决于我尝试的调用:

$driver->find_element_by_id("card.billingAddress.houseNumberOrName")->clear 

返回“元素当前不可见,因此可能无法与之交互”

$driver->find_element_by_xpath('//input[@id="card.billingAddress.houseNumberOrName"')->clear 

返回“SyntaxError:表达式不是合法表达式。”

我正在搜索的部分的来源是:

<tr>
   <td colspan="2"><div class="fieldSubHeader">Billing Address</div>
   </td>
</tr>
<tr>
   <td><div id="idAddress1_card" style="display:inline">Address 1</div>
       <div id="idHouseNumberOrName_card" style="display:none">House Number/Name
   </div</td>
   <td><div class="fieldDiv" id="idDivAddress1_card">
       <input type="text" class="inputField" id="card.billingAddress.houseNumberOrName"   name="card.billingAddress.houseNumberOrName"  value="" size="15" maxlength="40" />
   </div></td>
</tr>

它是 .在导致问题的 ID 中?

(我检查了计算出的 CSS,它没有隐藏!)

非常感谢

【问题讨论】:

    标签: perl selenium


    【解决方案1】:

    您错过了结束]。替换:

    '//input[@id="card.billingAddress.houseNumberOrName"'
    

    与:

    '//input[@id="card.billingAddress.houseNumberOrName"]'
                                                   HERE ^
    

    请注意,您可以通过直接切换到find_element_by_id() 方法来简化它。

    【讨论】:

    • 感谢您发现这个小错字! :) 我现在得到的结果与使用 $driver->find_element_by_id("card.billingAddress.houseNumberOrName")->clear 时的结果相同,即“元素当前不可见,因此可能无法与之交互” 关于为什么不这样做的任何想法不行吗?
    • @Whirlybird 您能否确保页面上没有其他具有相同 ID 的元素?
    • 没错,唯一的一点就是输入标签的name和id属性都是一样的
    • @Whirlybird 好的,所以这个id 只有一个元素。您确定该元素实际上是可见的 - 您能在测试运行期间看到它显示吗?
    • 不幸的是,由于我的设置限制,我无法实时查看测试,但我可以直接在浏览器窗口中复制测试,并且可以使用 Chrome 中的检查元素查看,计算的样式应该使其可见:-webkit-app-region: no-drag; -webkit 外观:无; -webkit-background-composite:源代码; -webkit-mask-repeat:重复; -webkit-user-modify:只读; -webkit-user-select:文本;显示:内联块;能见度:可见; -webkit-writing-mode: 水平-tb;
    猜你喜欢
    • 1970-01-01
    • 2013-09-17
    • 1970-01-01
    • 2016-06-23
    • 2017-08-28
    • 1970-01-01
    • 1970-01-01
    • 2021-07-04
    • 1970-01-01
    相关资源
    最近更新 更多