Java+;Selenium:ElementNotVisibleException
我在EBays的高级上传工具(URL:)上。我点击黄色框“点击添加照片-需要第一张照片”-我可以使用XPathJava+;Selenium:ElementNotVisibleException,java,selenium,xpath,Java,Selenium,Xpath,我在EBays的高级上传工具(URL:)上。我点击黄色框“点击添加照片-需要第一张照片”-我可以使用XPath“/*[@id='upl-fileInp']”上传第一张照片
“/*[@id='upl-fileInp']”上传第一张照片但是,当我尝试使用XPath上传第二张或第三张照片时,
“//input[contains(@class,'upl-fileInp')]”“我在Selenium中得到元素不可见异常。我理解错误的来源,但我没有看到元素不可见。我尝试了许多不同的XPath变体,但都没有成功。我尝试过webdriver等待,但也不起作用。HTML代码是:
<li kp="1" data="">
<span class="tg-li">
<div class="thumb" style="border: 1px solid rgb(255, 255, 255);">
<div class="disableLyr" style="display: none;"/>
<a class="del" title="delete"/>
<div class="guide">
<div class="throb">
<a class="addPicBtn" style="display: block;">
<i/>
<b>Add photos</b>
<input id="upl-11450764546022" class="upl-fileInp" type="file" multiple="" title="Select photos" value="" name="d"/>
</a>
<div class="picIcon" style="display: none;"/>
<a class="genericError" tabindex="0" style="border: 1px solid rgb(255, 255, 255);">
</span>
</li>
<li kp="1" data="">
<li kp="1" data="">
<li kp="1" data="">
<li kp="1" data="">
<li kp="1" data="">
<li kp="1" data="">
<li kp="1" data="">
<li kp="1" data="">
<li kp="1" data="">
<li class="last" kp="1" data="">
</ul>
<div id="tg-mainPicPnl" tabindex="-1">Main photo</div>
</div>
<div class="arrow rt">
</div>
<!-- TODO: Remove. Replaced by BubbleText. ******************************************* Thumbnails gallery tooltip *********************************************** <div id="tg-tooltip"><div class="ptr"></div><div class="msg"><div class="pad"><span class="hdg"></span><b>:</b><span class="bdy"></span><div class="hide"></div></div></div></div>-->
<!--******************************************* BubbleText ***********************************************-->
<div id="bt-bubbleTextTmp" class="puBubbleText">
<div id="up-uploadBtnWrap" style="display: inline-block;">
</form>
</div>
<!--
添加照片
主要照片
虽然这不是一个很好的选择,但是试着使用睡眠
,这样你就会知道你的问题是否在等待解决。比如说
sleep(5)
虽然这不是一个很好的选择,但是试着使用睡眠
,这样你就会知道你的问题是否在等待解决。比如说
sleep(5)
使用显式等待更合适,在尝试单击特定元素之前,请尝试等待该元素。比如:
WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement element = wait.until(
ExpectedConditions.visibilityOfElementLocated(By.xpath("//input[contains(@class,'upl-fileInp')]")));
element.click();
使用显式等待更合适,在尝试单击特定元素之前,请尝试等待该元素。比如:
WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement element = wait.until(
ExpectedConditions.visibilityOfElementLocated(By.xpath("//input[contains(@class,'upl-fileInp')]")));
element.click();
你能分享你的测试代码吗?你能分享你的测试代码吗?