我可以用鼠标按住并向下拖动滚动条来构建一个动作。我不喜欢那个解决方案,因为如果页面的大小不同,或者面板的大小不同,执行这个动作会导致大量的重新计算。我更喜欢一个类似于Yahoo!的单一“文档”窗口的解决方案!或者谷歌代码。
如有任何帮助,将不胜感激。在过去的三天里,我一直在网上绞尽脑汁地寻找解决办法。
多谢了。
我不确定当我使用术语panel时是否使用了正确的术语。问题是显示网页时面板会动态生成滚动条。
driver.switchTo().frame(driver.findElement(By.id("spsizer")));
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("javascript:window.scrollBy(250,750)", element);
driver.switchTo().defaultContent();
不幸的是,“Panel”不包含在框架中,或者是一个框架...由Selenium返回的异常标识:
Exception in thread "main" org.openqa.selenium.NoSuchFrameException: Element is not a frame element: DIV
我相信我已经使用Firebug确定了panel有一个ID(“spsizer”)。
element = driver.findElement(By.id("spsizer"));
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("javascript:window.scrollBy(250,750)", element);
我可以保存到我的地图链接与下面的屏幕快照给出的代码。
不需要有一个记录的步骤向下滚动面板,Selenium可以在网页中的任何web对象上定位和执行操作,而用户不可见。
守则详情:
单击链接保存到我的地图
第8行:命令-单击目标-//按钮[@id='srsave']
单击“保存”按钮
using System;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Support.UI;
namespace SeleniumTests
{
public class GoogleMapSavingTest
{
static void Main(string[] args)
{
IWebDriver driver = new FirefoxDriver();
driver.Navigate().GoToUrl("https://maps.google.com.au/");
driver.FindElement(By.Id("d_launch")).Click();
driver.FindElement(By.Id("d_d")).Clear();
driver.FindElement(By.Id("d_d")).SendKeys("Franklin, ACT");
driver.FindElement(By.Id("d_daddr")).Clear();
driver.FindElement(By.Id("d_daddr")).SendKeys("Gungahlin, ACT");
driver.FindElement(By.Id("d_d")).Click();
driver.FindElement(By.Id("d_sub")).Click();
for (int second = 0;; second++)
{
if (second >= 60) Assert.Fail("timeout");
try
{
if (driver.FindElement(By.XPath("//div[@id='dir_sr']/a[@id='srlink']")).Displayed) break;
}
catch (Exception)
{}
Thread.Sleep(1000);
}
driver.FindElement(By.XPath("//div[@id='dir_sr']/a[@id='srlink']")).Click();
driver.FindElement(By.Id("Email")).SendKeys("UserName");
driver.FindElement(By.Id("Passwd")).SendKeys("Password");
driver.FindElement(By.Id("signIn")).Click();
for (int second = 0; ; second++)
{
if (second >= 60) Assert.Fail("timeout");
try
{
if (driver.FindElement(By.XPath("//div[@id='dir_sr']/a[@id='srlink']")).Displayed) break;
}
catch (Exception)
{ }
Thread.Sleep(1000);
}
driver.FindElement(By.XPath("//div[@id='dir_sr']/a[@id='srlink']")).Click();
driver.FindElement(By.XPath("//button[@id='srsave']")).Click();
}
}
我在Selenium 1(又名Selenium RC)中编写了以下代码,用于使用java滚动页面: Selenium 2(WebDriver)中的等效代码是什么?
本文向大家介绍vim 向下滚动,包括了vim 向下滚动的使用技巧和注意事项,需要的朋友参考一下 示例 命令 描述 Ctrl+E 向下滚动一行。 Ctrl+D 向下滚动半屏(可使用该scroll选项配置)。 Ctrl+F 向下滚动全屏。 z+ 在窗口顶部的窗口下方绘制第一行。
问题内容: 我已经在Selenium 1(又名Selenium RC)中编写了以下代码,以便使用Java进行页面滚动: Selenium 2(WebDriver)中的等效代码是什么? 问题答案: 对于向下滚动: 或者,您可以执行以下操作: 对于向上滚动:
问题内容: 有人可以帮助我使用 Java* 使用 WebDriver 自动 向下滚动功能 吗? *** 就我而言,当我垂直向下滚动鼠标时,对于yahoo邮件就会显示( 可见 )。 问题答案: 您可以使用以下代码垂直向下滚动: 同样,也可以通过将y坐标更改为负值来向上滚动: 您还可以使用以下代码: 对于向下滚动: 向上滚动:
我无法在使用appium的android设备上向下滚动移动页面。我试过驾驶。滚动到(元素),它不会向下滚动到指定的元素。我尝试过使用Actions类,但我遇到了一个错误,因为“方法尚未实现”。我尝试过使用Javascript的另一种方法,但也不起作用。有人提出建议。 以下是代码:
我试图刮所有的链接可用在一个无限的页面,向下滚动,并获得新的链接可用。但是,time.sleep()不允许在一次又一次向下滚动之前暂停驱动程序一段合理的时间。 下面是我在“如何在Python中使用selenium webdriver滚动web页面”中使用的一个建议中使用的代码: 在20-30次迭代之后,由于time.sleep()与网页的刷新速度相比太低,代码会中断。