【问题标题】:Selenium Chrome WebDriver how to scroll horizontallySelenium Chrome WebDriver如何水平滚动
【发布时间】:2014-11-24 03:27:43
【问题描述】:

Chrome 网络驱动程序有一个限制,即仅加载可见的网页内容。我有一个有长水平表的网站。我有 Xpath 可以提取超出屏幕宽度的表格的列标题。在 chrome 开发工具控制台中,如果我运行 xpath $x(myxpathgoeshere) 我会得到所有标题,包括那些不在视图中的标题(让你滚动查看所有标题的标题)。所以我知道我的 xpath 是正确的。但是在代码中,当我使用 selenium webdriver 访问它时,它只会给出当前视图中的标题名称。我在 chrome webdriver google group page 上遇到了各种帖子,用户提到了这个限制,并且回答是不修复它。所以无论如何,现在我正在尝试使用 javascript 使其工作以水平滚动,然后再次通过 xpath 执行 findelement 以查看是否加载了右侧的元素。但由于某种奇怪的原因,我似乎无法让水平滚动工作。我正在使用 C# Javascript 执行器。

IJavaScriptExecutor js = (IJavaScriptExecutor) Driver;
js.ExecuteScript("scrollTo(3000,0);"); // whatever X value I use chrome is not scrolling to the right. 

我也尝试过scrollX,但没有运气。我的代码有问题吗?

已编辑:忘记了我使用 X 表示水平而不是 Y

【问题讨论】:

  • 通常当你聚焦一个元素时,它会滚动到它。 (例如 SendKeys() )。你知道我在查找元素方面从来没有遇到过问题,尽管我无法操作那些不在视口中的元素,你是对的。
  • 顺便说一句,这不是 IE 和 Firefox 的问题。 Firefox 会找到不在视图中的内容。

标签: javascript c# selenium-webdriver google-chrome-devtools webautomation


【解决方案1】:

对于这类问题,我曾使用浏览器放大和缩小功能,但我在 java 中使用此功能。使用 java 机器人类,我正在缩小浏览器,所以我会自动显示隐藏的列。你可以试试它可能对你有帮助。

【讨论】:

  • 有趣的想法。我想我可以使用 javascript todo ctrl-- 来查看隐藏的内容。这应该有望使与 DOM 的交互与 100% 时相比没有什么不同。
  • 这将破坏 Internet Explorer。 Chrome 和 Firefox 都可以
【解决方案2】:

修改代码:

js.ExecuteScript("scrollTo(3000,0);");

js.ExecuteScript("scroll(3000,0);");

简单地说,不仅仅是scrollToscroll

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-12
    • 2020-02-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多