我通过 Xpath 获取了按钮元素,但是当尝试点击它时,元素不可见异常。
<div class="modal-footer">
<button id="btnRegister" type="button" class="btn btn-primary btn-block">Register</button>
</div>
父div
<div class="modal fade in" id="registration-window" tabindex="-1" role="dialog" aria-labelledby="register-title" aria-hidden="false" style="display: block;">
答案 0 :(得分:7)
要添加到您可以尝试的事项列表中:
问题可能比元素当前不可见更复杂一些。它前面可能有一个看不见的元素,无论你等多久,它都不会被看到。在这种情况下,您可以通过几种方式获得它:
使用javascript:
滚动到它JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("arguments[0].scrollIntoView()", yourElement);
...或
点击javascript:
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("arguments[0].click()", yourElement);
答案 1 :(得分:3)
在这种情况下通常有用的事项列表:
driver.Manage().Window.Maximize();
在点击之前移动到元素:
Actions builder = new Actions(driver);
builder.MoveToElement(yourElement).Click().Build().Perform();
wait for element to become clickable:
var wait = new WebDriverWait(driver, TimeSpan.FromMinutes(1));
var clickableElement = wait.Until(ExpectedConditions.ElementIsClickable(By.Id("id")));
答案 2 :(得分:0)