作为测试脚本的一部分,我必须重定向到第三方托管的付款页面。但是,当我尝试找到输入框元素时,它的错误会略有不同,具体取决于我尝试的调用:
$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,但没有隐藏!)
非常感谢
答案 0 :(得分:1)
您错过了结束]
。替换:
'//input[@id="card.billingAddress.houseNumberOrName"'
使用:
'//input[@id="card.billingAddress.houseNumberOrName"]'
HERE ^
请注意,您可以通过直接切换到find_element_by_id()
方法来简化它。