【问题标题】:How do we get the specific value from URL using Selenium Webdriver C#?我们如何使用 Selenium Webdriver C# 从 URL 获取特定值?
【发布时间】:2015-09-23 10:35:57
【问题描述】:

下面提到了我的页面URL,我想获取JID 值。

http://.........../abc.aspx?JID=00001833

我可以从此代码中获取完整的 URL,但我想获取特定的值。

string url = driver.Url;
Console.WriteLine(url);

【问题讨论】:

标签: c# url


【解决方案1】:

更新: 正如 JeffC 建议的正确获取参数的方法,您应该使用 HttpUtility.ParseQueryString

String yoururl = "http://example.com/abc.aspx?JID=00001833";
Uri theUri = new Uri(yoururl);
String jid = HttpUtility.ParseQueryString(theUri.Query).Get("JID");
Console.WriteLine(jid);

在此处阅读有关ParseQueryString 的更多信息:https://msdn.microsoft.com/en-us/library/ms150046.aspx


*不推荐的方式(带字符串操作):

如果您的 jid 的长度是固定的,您可以执行以下操作:*

string url = driver.Url;
string jid = url.Substring(url.Length-8,8)
Console.WriteLine(jid);

【讨论】:

  • 这确实不是正确的方法。如果您的 JID 有时不是 8 位数字怎么办?如果有时在 JID 之后的字符串中添加了另一个查询参数怎么办?请参阅我发布的 dup,了解使用 ParseQueryString() 的正确方法
【解决方案2】:

你的例子重做

string url = driver.Url;
string newUrl = url.Split('=').Last();
Console.WriteLine(newUrl);

【讨论】:

    【解决方案3】:

    使用 string.Split 试试这个

    DotNetFiddle Example You can run

    这是小提琴中的代码:

    var URL = "http://.........../abc.aspx?JID=00001833";
            var JID = URL.Split('?').Last();
            Console.WriteLine(JID);     
            var JIDVal = JID.Split('=').Last();
            Console.WriteLine(JIDVal);  
    

    【讨论】:

      猜你喜欢
      • 2018-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-13
      • 2016-05-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多