我使用以下内容在文本框中输入文字:
driver.findElement(By.xpath("//input[@name = 'c_1']")).sendKeys("Test");
HTML:
<div id="ext-comp-1110" class=" x-panel criterion-block" style="width: 252px;">
<div id="ext-gen397" class="x-panel-bwrap">
<div id="ext-gen398" class="x-panel-body x-panel-body-noheader" style="width: 252px;">
<div id="ext-comp-1111" class=" x-panel criterion-label">
<div id="ext-gen413" class="x-panel-bwrap">
<div id="ext-gen414" class="x-panel-body x-panel-body-noheader">
<label id="ext-comp-1112">Insured Name contains:</label>
</DIV>
</DIV>
</DIV>
<input id="ext-gen186" class=" x-form-text x-form-field criterion " type="text" name="c_1" autocomplete="off" size="20" style="width: 222px;" title="">
</DIV>
</DIV>
当我运行它时,我得到一个元素不可见的异常。
答案 0 :(得分:0)
通常在元素被隐藏或被<div>
之类的隐藏元素包围时发生。 Selenium Webdriver只有在可见时才能处理它。 (我用Javascript做了 - &gt;参考链接)
答案 1 :(得分:0)
尝试类似的事情;
driver.findElement(By.xpath("//div[@id='ext-comp-1112']/../../following-sibling::input"))
如果你想使用标签文字;
driver.findElement(By.xpath("//div[text()='Insured Name contains:']/../../following-sibling::input"))
NB。我已经从内存中写了这个,所以它可能需要调整,但你应该得到这个想法