python selenium 自动化测试中 报错: Element could not be scrolled into view
折腾了许久,出错原因可能以下几种情况,记录一下
1.可能元素还未加载出,手动time.sleep(3)几秒或者设置隐式等待
WebDriverWait wait = new WebDriverWait(driver, 5);
WebElement element = driver.findElement(By.XPATH(xpath));
wait.until(ExpectedConditions.elementToBeClickable(element));
element.click();
或显示等待
driver.implicitly_wait(10)
让元素完全加载
2.某些情况下元素的visibility为hidden或者display属性为none,页面上不可见但是实际上存在的元素(可以用ele.is_displayed()
来取得是否显示)
3.元素是否不在同一个iframe里,需要切换到元素所在的iframe中才能定位到 , driver.switch_to.frame('iframeid')
4.是否需要用js的方法来scroll滚动到元素位置() js.executeScript("arguments[0].scrollIntoView(true);", element);
5.控制台中试试用同样的xpath获取的元素是不是想要定位的元素,我这里就是由于xpath的原因定位到了2个元素,一个是我想要定位的,还有一个隐藏的元素,所以导致报错,换了xpath
转载请说明出处:第六感博客 原文链接: