在Perl中使用Selenium :: Remote :: Driver发现查找元素

时间:2015-10-12 13:34:24

标签: perl selenium

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

$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,但没有隐藏!)

非常感谢

1 个答案:

答案 0 :(得分:1)

您错过了结束]。替换:

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

使用:

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

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