如何使用C#中的Selenium chrome驱动程序从网页打印URL列表到控制台?
重要的是将网站上特定位置的所有URL打印到控制台。 这可以给我所有链接的文本,但不是URL。请帮忙。对不起,我对编码很陌生。我被告知使用不同的web驱动程序,但对于我当前的项目,我希望留在Selenium如何使用C#中的Selenium chrome驱动程序从网页打印URL列表到控制台?,c#,selenium,selenium-webdriver,selenium-chromedriver,C#,Selenium,Selenium Webdriver,Selenium Chromedriver,重要的是将网站上特定位置的所有URL打印到控制台。 这可以给我所有链接的文本,但不是URL。请帮忙。对不起,我对编码很陌生。我被告知使用不同的web驱动程序,但对于我当前的项目,我希望留在Selenium using OpenQA.Selenium; using OpenQA.Selenium.Chrome; using OpenQA.Selenium.Support; using System; using System.Collections.Generic; using System.IO
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using OpenQA.Selenium.Support.UI;
namespace Test_Scraper_1
{
class Program
{
static void Main(string[] args)
{
//Initialize chrome driver
using (var driver = new ChromeDriver())
{
driver.Navigate().GoToUrl("https://www.tfrrs.org/");
//find elements
var Search_Field = driver.FindElementByXPath(@"/html/body/div[3]/div/div/div[4]/div/div[2]/form/div[1]/input");
var Search_Button = driver.FindElementByXPath(@"/html/body/div[3]/div/div/div[4]/div/div[2]/form/div[4]/button");
var Count = 1;
Search_Field.SendKeys("Ashley Smith");
Search_Button.Click();
var titles = driver.FindElementsByClassName("allRows");
foreach (var allRows in titles)
{
Console.WriteLine(allRows.Text + Count++);
}
Console.ReadLine();
}
}
}
}
在foreach循环中使用
allRows.getAttribute(“href”)
而不是allRows.Text
,以获取URL您的allRows
是tr
元素,如下所示
<tr class="filtered allRows ">
<td id="col0">
<a href="//www.tfrrs.org/athletes/3721395/Youngstown_St/Ashley__Smith_.html">Ashley Smith </a>
</td>
<td id="col1">
<a href="//www.tfrrs.org/teams/xc/OH_college_f_Youngstown_St.html">Youngstown St. (F)</a>
</td>
</tr>
我要改成这样吗。。。Console.WriteLine(allRows.GetAttribute(“href”);这不会将任何内容打印到控制台:(对不起,我不明白。当我添加变量时,它说“allRows”在代码中不存在。我仍然无法将所有URL的列表打印到控制台…@StevePaternostro是否已将其添加到foreach循环中?变量allRows存在于其中。
var column0 = allRows.FindElement(By.Id("col0"));
var aElement = column0.FindElement(By.TagName("a"));
var link = aElement.GetAttribute("href");
namespace Test_Scraper_1
{
class Program
{
static void Main(string[] args)
{
//Initialize chrome driver
using (var driver = new ChromeDriver())
{
driver.Navigate().GoToUrl("https://www.tfrrs.org/");
//find elements
var Search_Field = driver.FindElementByXPath(@"/html/body/div[3]/div/div/div[4]/div/div[2]/form/div[1]/input");
var Search_Button = driver.FindElementByXPath(@"/html/body/div[3]/div/div/div[4]/div/div[2]/form/div[4]/button");
var Count = 1;
//Navigate to target page
Search_Field.SendKeys("Ashley Smith");
Search_Button.Click();
var titles =driver.FindElementsByClassName("allRows"); // driver.FindElementByLinkText("Ashley Smith");
foreach (var title in titles)
{
var Link_Name_TFRRS = title.FindElement(By.TagName("a")).GetAttribute("href"); ;
Console.WriteLine(Link_Name_TFRRS);
}
Console.ReadLine();
}
}
}
}