我正在尝试点击一个容器内的on卡片。我尝试过id、class、xpath,但都没有找到。我不确定还能尝试什么才能获得元素。
下面是我想要单击的元素的代码:
<div class="mtable" id="w-card" status="83" entertainer="1799">
<div class="mtable-cell wc-gray-dark" id="widget-icon" style="border-color: ">
<div class="caption"><img src="/images/default_entertainer_image.jpg" class="caption-img"></div>
</div>
<div class="mtable-cell wc-white" id="widget-text">
<div>
<h6>
<span id="status-83" class="label label-default ">
<span class="entertainer-name">Testing</span>
<br>Testing100
<br>Last Seen: never
</span>
</h6>
</div>
<div id="timers">
<div id="lastChange" class="pull-left"></div>
<div id="circle" class="pull-right"></div>
</div>
</div>
</div>selenium代码:
driver.findElement(By.xpath("//*[@id=\"w-card\"]")).click();我已经在div的所有子元素上运行了显示测试,webdriver找到了它,但说它没有显示?
发布于 2016-01-13 15:22:24
使用Explicit Wait等待元素可单击。
WebDriverWait driverWait = new WebDriverWait(driver, timeOutInSeconds);
wait.until(ExpectedConditions.elementToBeClickable(By.id("w-card"))).click();发布于 2016-01-13 13:59:38
尝试使用显式等待
WebDriverWait wait = new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("w-card"))).click();这将等待20秒以使元素可见,然后再单击它。
发布于 2016-01-13 18:15:56
我想你的分区是看不见的。因此,在检查isDisplayed()条件中,以3秒为间隔运行for循环10次,是否显示过它。同样,如果所有的东西都失败了,那就试试javascript click..thats,虽然不推荐,但仍然可以拯救我们。
https://stackoverflow.com/questions/34755231
复制相似问题