提问者:小点点

Selenium-ScrollIntoView-将元素隐藏在页眉/页脚后面


问题:ScrollIntoView将元素隐藏在页眉/页脚后面。我的应用程序有页眉/页脚。

尝试了以下解决方案:

1)ScrollIntoView(true),如果元素向上并尝试从底部滚动,它会将Web元素隐藏在标题后面。

2)发送true/false,它可以工作,但我不知道元素的确切位置,所以不能每次都告诉框架向下/向上滚动元素。

3)直接点击(采取行动)元素,chrome会自动滚动到可见性,但标题是存在的,这就是为什么它隐藏在后面。

请让我知道是否有任何单个代码可以使元素可见,即使它的页眉/页脚存在。寻找解决方案是c#并使用chrome浏览器。


共2个答案

匿名用户

对此我有几点建议:

>

  • 你看过API的动作吗,正如这篇文章所描述的(它主要针对Java,但C#api非常相似)
  • 您可以应用以下过程:

    1. 将元素滚动到视图中
    2. 找出它是否隐藏在页眉或页脚后面
    3. 按页眉高度向下滚动,或按页脚高度向上滚动。

    您可以获取它在页面中的绝对位置,然后滚动到那里。

  • 匿名用户

    您可以使用操作API。

    >

  • 检查元素是否存在。
  • 使用Actions类移动到元素。
  • 检查元素可见。
  • 如果元素可见,则对元素执行操作。

    By element = By.id("element_id");
    if(driver.findElements(element).size()>0){
        Actions action = new Actions(driver);
        action.moveToElement(driver.findElement(element).perform();
        if(driver.findElement(element).isDisplayed()){
            driver.findElement(element).click();
        }
    }