Selenium:查找基本 URL

2024-04-01

我在不同的机器上使用 Selenium 来自动测试 MVC Web 应用程序。

我的问题是我无法获取每台机器的基本网址。

我可以使用以下代码获取当前网址:

IWebDriver driver = new FirefoxDriver();
string currentUrl = driver.Url;

但当我需要导航到不同的页面时,这并没有帮助。

理想情况下,我可以使用以下内容导航到不同的页面:

driver.Navigate().GoToUrl(baseUrl+ "/Feedback");
driver.Navigate().GoToUrl(baseUrl+ "/Home");

我使用的一个可能的解决方法是:

string baseUrl = currentUrl.Remove(22); //remove everything from the current url but the base url
driver.Navigate().GoToUrl(baseUrl+ "/Feedback");

我有更好的方法可以做到这一点吗?


解决这个问题的最佳方法是创建一个UriURL 的实例。

这是因为Uri class http://msdn.microsoft.com/en-us/library/System.Uri.aspx.NET 中已经有代码可以完全为您执行此操作,因此您应该使用它。我会选择类似的东西(未经测试的代码):

string url = driver.Url; // get the current URL (full)
Uri currentUri = new Uri(url); // create a Uri instance of it
string baseUrl = currentUri.Authority; // just get the "base" bit of the URL
driver.Navigate().GoToUrl(baseUrl + "/Feedback"); 

本质上,你是在追求权限属性 http://msdn.microsoft.com/en-us/library/system.uri.authority.aspxUri class.

请注意,有一个属性可以做类似的事情,称为Host http://msdn.microsoft.com/en-us/library/system.uri.host.aspx但这不包括端口号,而您的站点则包括端口号。不过,这是需要牢记的事情。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Selenium:查找基本 URL 的相关文章

随机推荐

  • 如何为react-native应用程序设置URL方案/链接

    我想使用 oauth 为 Spotify Web API 授予对 React Native 应用程序的访问权限 我知道我需要使用linking https facebook github io react native docs linki
  • 即使具有 SELECT 权限也无法选择表

    我有两个用户 USER1 and USER2 USER1有特权create table and USER2没有这个特权 USER1创建了一个名为EMPLOYEE并授予select该表的特权USER2 使用 USER1 凭据 1 创建表 CR
  • 如何知道我的二进制可执行文件的内存占用量

    我想知道是否有办法知道用 C 语言编码的二进制可执行文件的内存占用量 有关二进制可执行文件的信息 使用OpenWrt分支 Attitude Adjustment 的工具链编译 架构为x86 在 Linux Unix 系统上 您可以使用siz
  • 构建 Keras Tensorboard 图

    当我创建一个简单的 Keras 模型时 model Sequential model add Dense 10 activation tanh input dim 1 model add Dense 1 activation linear
  • 如何在 UNIX shell 中将制表符分隔的文本复制到剪贴板,同时保留制表符?

    我正在尝试将 UNIX 环境中的文件的几行复制并粘贴到网页中 我想通过破坏选项卡来保留原始格式 但是 当我选择一段文本并将其复制并粘贴到网页中时 所有选项卡都已转换为不同长度的空格 有人可以告诉我如何保留原始标签吗 它需要尽可能简单 以便新
  • 数据库表命名,复数或单数[重复]

    这个问题在这里已经有答案了 命名数据库的表和模式时最好使用单数或复数 例如 应该是客户还是客户 命名时应该用Capital 如Customer或customer吗 关于命名有什么最佳实践吗 这个问题需要一场宗教战争 我毫不怀疑它应该是复数
  • C++11 空列表 联合的初始化 - 是否保证初始化联合的完整长度?

    在 C 11 中 我有以下联合 union SomeData std uint8 t Byte std uint16 t Word std uint32 t DWord unsigned char String 128 如果我这样初始化联合
  • Git checkout——恢复丢失的文件

    我不小心删除了 git 存储库上的本地文件更改 他们没有被承诺 甚至没有被推动 我做了什么 git 状态 然后显示未暂存提交的文件 并且我意外地通过此命令删除了名为 smdr 的整个文件夹 git checkout smdr 然后文件更改就
  • Latex中如何设置标题字体颜色

    Latex 中可以更改标题字体颜色吗 你可以看看sectsty包裹 secsty 包提供了一组命令 用于更改标准 LATEX 2 文档类中各个章节标题所使用的字体 1 从手册中 确保您在文档中包含该包 方法是在您的 文件序言 usepack
  • C++ - 如何使用 C++ 读取 Unicode 字符(例如印地语脚本),或者是否有通过其他编程语言更好的方法?

    我有一个像这样的印地语脚本文件 3 我必须编写一个程序 为每个句子中的每个单词添加一个位置 因此 特定单词位置的每一行的编号应以括号中的 1 开头 输出应该是这样的 3 1 2 3 4 5 6 7 8 9 上面这句话的意思是 3 India
  • 我需要在 asp.net 中屏蔽文本框

    该文本框中只能包含数字 条目必须在 100 到 500 之间 文本框需要包含 3 位小数 我不希望在将值插入数据库时 出现任何错误 我需要使用 jQuery 或 ASP NET 验证控件吗 如果 jQuery 有用 那么我会使用哪个插件 或
  • R 中的对称非负矩阵分解

    I am trying to implement NMF in R based on the following formula H is initially guess and then iteratively update based
  • 何时在 Angular + Java 项目中使用 DTO 和 Matpstruct

    好吧 我有一个大项目 我想把它做好 但我什至不知道规范是什么 Problem 我有几个具有关系的实体 我需要将它们一起显示在页面上 在视图中显示前 3 个事件 凡是Event有关系到事件实例 a 取消政策 并且对多个Pricing 截止日期
  • 获取用户在当前之前浏览过的页面

    代替 login php ref http mysite com lastpage 我可以通过其他方式获得之前的页面吗 尝试了 HTTP REFERER 但无法让它工作 Notice Undefined index HTTP REFERER
  • 渲染 svg 文件并使用 Express 提供服务

    我想知道如何使用 Express 渲染和提供 svg 文件 现在 我可以将 svg 作为原始 XML 文件提供 这是我正在做的事情 route router get status function req res next res setH
  • Rails 中的共享 JS(咖啡)

    如果我想在不同文件之间共享一些 JavaScript 函数应用程序 资产 javascript组织目录结构的最佳方法是什么 假设我有共享 js 咖啡 sharedFunction gt Hello 现在 我如何在其他地方使用它 就像这里一样
  • Solr 复制和 Solr 云有什么区别?

    我支持 Rails 项目 其中包含 Rails 应用程序和 Solr 的附加实例 我的环境 rails 3 2 1 ruby 2 1 2 sunspot 2 1 0 Solr 4 1 6 Problem 云提供商不稳定 我不能使用其他云提供
  • Pandas groupby - 计算相对点的距离

    假设我有一些看起来像这样的东西 df pd DataFrame Event A A A A A B B B B B Number 1 2 3 4 5 6 7 8 9 10 Ref False False False False True F
  • Nexus One - Android 2.1 版本,2.1 的 SDK 在哪里?

    搭载 2 1 操作系统的 Nexus Android 手机今天上市 我的朋友 刚刚订购了两个 隔夜运送 我想这意味着明天或后天就会在他手中 人们在他们的生活中拥有 2 1 版本 这怎么可能接受呢 在开发人员接触 SDK 之前就动手 我已经有
  • Selenium:查找基本 URL

    我在不同的机器上使用 Selenium 来自动测试 MVC Web 应用程序 我的问题是我无法获取每台机器的基本网址 我可以使用以下代码获取当前网址 IWebDriver driver new FirefoxDriver string cu