当前位置: 首页 > 知识库问答 >
问题:

如何使用C#Selenium从google search中获取所有url(仅限首页),然后从该列表中获取指定url的索引?

唐炜
2023-03-14

嘿,在C#中使用Selenium和NUnit测试和chrome的伙计们,我如何从谷歌搜索的第一页中获得列表中的所有主要URL(web URL),然后从该列表中获得指定URL的索引号?

共有1个答案

张翰音
2023-03-14

我不确定你到底是怎么知道你想搜索什么url,但这里有。我添加了一个dictionary方法,以防您需要存储索引和url以便以后使用。

using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System;
using System.Collections.Generic;
using System.Linq;

namespace Selenium
{
    public class Tests
    {
        public IWebDriver driver;


        [SetUp]
        public void Setup()
        {
            driver = new ChromeDriver(".");
        }

        [Test]
        public void TestUrlsIndex()
        {
            driver.Navigate().GoToUrl("https://google.com");

            //accept privacy
            driver.FindElement(By.XPath("//div[text()='I agree']")).Click();

            //type something and press Enter
            driver.FindElement(By.Name("q")).SendKeys("Retrieve Index" + Keys.Enter);

            //get all a elements 
            var a_webElements = driver.FindElements(By.XPath("//div[@class='g']/div/div/a"));


            //print the index for all
            for (int i = 0; i < a_webElements.Count; i++)
            {
                Console.WriteLine($"The index is {i} for the url {a_webElements[i].GetAttribute("href")}");
            }

            //when you know the url and want to return its index
            var index = ReturnIndexOfAnUrl(a_webElements, "https://stackoverflow.com/questions/41217310/get-index-of-a-row-of-a-pandas-dataframe-as-an-integer");



        }

        //when you want to search the url and return its index
        public int ReturnIndexOfAnUrl(IList<IWebElement> webElements, string searchHref)
        {
            return webElements.ToList().FindIndex(x => x.GetAttribute("href").Equals(searchHref));

        }

        //when you want to store the index and its corresponding url
        public Dictionary<int, string> ReturnIndexAsIndexAndUrlAsValue(IList<IWebElement> webElements)
        {
            var dictionary = new Dictionary<int, string>();

            for (int i = 0; i < webElements.Count; i++)
            {
                dictionary.Add(i, webElements[i].GetAttribute("href"));
            }

            return dictionary;
        }


        [TearDown]
        public void TearDown()
        {
            driver.Close();
        }

    }
}

你应该看看像这样的东西

The index is 0 for the url https://stackoverflow.com/questions/41217310/get-index-of-a-row-of-a-pandas-dataframe-as-an-integer
The index is 1 for the url https://www.geeksforgeeks.org/how-to-get-rows-index-names-in-pandas-dataframe/
The index is 2 for the url https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-index.html
The index is 3 for the url https://thispointer.com/python-find-indexes-of-an-element-in-pandas-dataframe/
The index is 4 for the url https://www.geeksforgeeks.org/how-to-get-rows-index-names-in-pandas-dataframe/
The index is 5 for the url https://www.geeksforgeeks.org/python-list-index/
The index is 6 for the url https://stackoverflow.com/questions/17426521/list-all-indexes-on-elasticsearch-server
The index is 7 for the url https://github.com/MikkelSchubert/paleomix/issues/36
The index is 8 for the url https://www.programiz.com/python-programming/methods/list/index
The index is 9 for the url https://www.sqlshack.com/gathering-sql-server-indexes-statistics-and-usage-information/
The index is 10 for the url https://dba.stackexchange.com/questions/141293/query-to-retrieve-index-details-for-a-particular-column-in-all-tables
The index is 11 for the url https://en.wikipedia.org/wiki/Database_index
The index is 12 for the url http://www.bcsea.bt/indexnumber
The index is 13 for the url https://aip.scitation.org/doi/10.1063/1.4752753
 类似资料:
  • 首先,我有这个“用户”模型 而这种“用户详细信息”模型 我试图从user_details模型中只获取特定的列(user_details[外键=user_id]模型与用户[主键/引用键=user_id]模型有关系) 但不幸的是,不幸的是,没有工作,我得到了这个错误(参考下面) 查询onnection.php第624行中的异常: SQLSTATE[42S22]:找不到列: 1054字段列表中的未知列u

  • 问题内容: 我正在将Selenium与Python API和Firefox结合使用来执行一些自动操作,这是我的问题: 单击原始页面上的链接,比方说 a.com 我被重定向到 _b.com/some/path?arg=value_ 并立即将我再次重定向到最终地址 c.com 那么有没有办法使用Selenium Python API 获得中间重定向URL _b.com/some/path?arg=va

  • 我需要用函数SSJS from mJson()读一个URL。例如Notes View的数据访问API http://{host}/{database}/api/data/collections/name/{name} 我该怎么做? P. S我认为(我不知道是否是真的),如果我使用Java代码(例如类URLReader从这个博客,我失去作者/读者的功能,因为是我的服务器,而不是当前用户执行读取流?

  • 问题内容: 此URL返回JSON: 我尝试了一下,但没有成功: 如何从该URL的JSON响应中获取JavaScript对象? 问题答案: 您可以使用jQuery 函数:

  • 有没有办法从Firebase存储中获取所有的URL? 我知道有从firebase数据库获取URL的方法,比如将firebase存储文件的URL存储在firebase实时数据库中,然后从它获取URL。但是我正在从图片中显示的按钮上传图片,并且想要所有那些上传图片的URL直接从firebase存储路径像... 用它就像... 如有任何帮助,我们将不胜感激。

  • 问题内容: 我有这样的网址: 如何获取章节和帖子的参数值​​? 我的URL在Chapter参数的值中包含“&”。 问题答案: 您可以在Android中使用Uri类来完成此操作; https://developer.android.com/reference/android/net/Uri.html 这样,您甚至可以从查询参数中获取特定元素;