[英]How to download linked text - Selenium C#
我正在尝试创建一个自动化来从带行的文本中下载文件。 不幸的是,我无法让它工作。 我是 selenium 的新手。
这是 HTML 站点代码:
<table class="table table-stripped">
<thead>
<tr>
<th>Name</th>
<th>Größe</th>
<th>DL</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/get/vobqwunyrrxl2oo5">Ttnc-18p.part01.rar</a>
</td><td>500.00 MB</td>
<td><a href="/get/vobqwunyrrxl2oo5"><img width="16" height="16" src="//filer.net/media/images/ico_arrow_down.png?2018" alt="DL"></a>
</td></tr>
<tr>
<td><a href="/get/rgpwrydtby6s1zdh">Ttnc-18p.part01.rev</a>
</td><td>500.00 MB</td>
<td><a href="/get/rgpwrydtby6s1zdh"><img width="16" height="16" src="//filer.net/media/images/ico_arrow_down.png?2018" alt="DL"></a>
</td></tr>
<tr>
<td><a href="/get/qjfyfyusx9pbycrg">Ttnc-18p.part02.rar</a>
</td><td>500.00 MB</td>
<td><a href="/get/qjfyfyusx9pbycrg"><img width="16" height="16" src="//filer.net/media/images/ico_arrow_down.png?2018" alt="DL"></a>
</td></tr>
<tr>
<td><a href="/get/pydwswtrhoqenolb">Ttnc-18p.part03.rar</a>
</td><td>500.00 MB</td>
<td><a href="/get/pydwswtrhoqenolb"><img width="16" height="16" src="//filer.net/media/images/ico_arrow_down.png?2018" alt="DL"></a>
</td></tr>
我希望它从以下位置下载链接:Ttnc-18p.part01.rar、Ttnc-18p.part02.rar、Ttnc-18p.part03.rar 等等……我试过这个:
ChromeDriver.FindElement(By.XPath("/table[contains(@class,'table table-stripped')]/tbody/tr/td/a[contains(text(),'" + "Ttnc-18p.part01.rar" + "')]")).Click();
它不起作用,我不知道该怎么做。 其他任何事情都失败了。
我要尝试的第二件事是代码将生成需要下载的链接数组,以便我可以将代码提供给具有不同链接数量的不同网站。
请帮忙。
您可以尝试以下方法,但您可能希望将它们分解为单独的可重用方法:
public IEnumerable<string> DownloadLinks(string url)
{
// for storing each href value as it is retrieved from the links
var listOfLinks = new List<string>();
// start your instance of ChromeDriver
var driver = new ChromeDriver();
// Navigate to the url you passed in
driver.Navigate().GoToUrl(url);
// Get a collection of all anchor ("a") tags.
var anchorTags= driver.FindElements(By.TagName("a"));
// Now for each anchor tag...
foreach(var link in anchorTags)
{
// ...retrieve the value of its 'href' attribute (i.e. your link)...
var l = link.GetAttribute("href");
// ...add the link path to your listOfLinks
// and append your url to the href since the href is only a partial
// ( /get/vobqwunyrrxl2oo5 becomes https://yourwebsite.com/get/vobqwunyrrxl2oo5)
listOfLinks.Add(url + l);
// now click your link to simulate clicking the link and downloading the file
link.Click();
}
// and finally return your list of links
return listOfLinks;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.