如何在本地网页(在我的 PC 上)上使用 Selenium WebDriver 而不是位于在线某处的网页?
Posted
技术标签:
【中文标题】如何在本地网页(在我的 PC 上)上使用 Selenium WebDriver 而不是位于在线某处的网页?【英文标题】:How to use Selenium WebDriver on local webpage (on my PC) instead of one located somewhere online? 【发布时间】:2013-08-01 03:02:01 【问题描述】:我想在我硬盘上的网页上使用 Selenium WebDriver。我试过类似的东西:
selenium = new WebDriverBackedSelenium(driver, "C:\\...dispatcher.html");
...而不是正常的:
selenium = new WebDriverBackedSelenium(driver, "http://www.dunnowhattodo.org");
...但它不起作用(我收到错误“未知协议:c”)。
【问题讨论】:
它之前可能需要file://
协议...你试过了吗?
不,我没试过:file://C://...应该这样吗?
@Bartosz Wygledacz: code.google.com/p/selenium/issues/detail?id=3997
【参考方案1】:
在 selenium 会话期间,您始终可以在打开的 Web 浏览器上从您的 PC 拖放 html 文件,并查看文件路径的外观。在我的情况下是:
webdriver.get("file:///C:/Users/Desktop/Some%20%E2%80%93%20file%20on%20the%20PC.html")
【讨论】:
【参考方案2】:硒版本:3.141.59
使用这个 webdriver.get("file:///D:/folder/abcd.html") 会失败。
而不是webdriver.get("///D:/folder/abcd.html") 获取成功。
【讨论】:
【参考方案3】:这也可以通过相关文件来完成:
Path sampleFile = Paths.get("sample.html");
driver.get(sampleFile.toUri().toString());
【讨论】:
【参考方案4】:对于我们这些使用java.nio
的人,我们还可以执行以下操作:
webdriver.get("file:\\\\\\" + filePath);
...其中filePath
是java.nio.file.Path
类型的对象,表示绝对 路径。
【讨论】:
【参考方案5】:试试这个方法:
webdriver.get("file:///D:/folder/abcd.html");
(或)
selenium = new WebDriverBackedSelenium(driver, "file:///D:/folder/abcd.html");
【讨论】:
可以以某种方式使用相对路径吗? @Pithikos 没有,但是在使用 windows 时,您可以使用环境变量,例如 %USERPROFILE%(主文件夹)和 %APPDATA%(应用程序文件夹) 如何在 macOS 上使用 Safari 执行此操作?我无法从本地文件系统打开 html 文件。如果我在浏览器中手动使用 file:///Users/pathToMyFile/index.html ,它就可以工作。但是,如果驱动程序通过get方法打开它,它就不起作用。 它适用于我的 aws 实例 :)【参考方案6】:当您调用 driver.get(URL) 方法时,WebDriver 会使用作为基本 javascript 的 HTTP 请求,因此,将网站作为路径引用,该任务将是不可能的。
但如果您: 1st- 在你的 marine 上安装 Apache WebServer(比方说)。 2nd-上传或公开到WebServer,那个Web应用程序(dispatcher.html) 3rd- 尝试在 [http://localhost:8080/dispatcher.html] 上记录和执行您的测试用例(8080 是默认端口,但您可以将其配置为其他端口)。
【讨论】:
以上是关于如何在本地网页(在我的 PC 上)上使用 Selenium WebDriver 而不是位于在线某处的网页?的主要内容,如果未能解决你的问题,请参考以下文章
如何在我的 phonegap 应用程序中从网页导航到本地页面?
如何在我的网页中垂直排列水平排列的部分,以使我的页面在设备上响应
如何在我的本地 linux 服务器上运行 google-cloud-datalab?