我尝试了一些这样的事情:
IWebDriver driver = new ChromeDriver(@"D:\Selenium");
driver.Navigate().GoToUrl("http://www.bladibla.com");
ReadOnlyCollection<IWebElement> elements = driver.FindElements(By.TagName("a"));
foreach (IWebElement element in elements)
{
if (element.Text.Equals("Bla"))
{
}
Console.WriteLine(element.Text);
}
包含一些XPath但没有成功。我想要的只是点击这个html代表的链接:
<a href="xyz/bla.txt" onclick="ga('send', 'pageview', 'xyz/bla.txt');"><img src="images/download16.png" alt="Download XYZ" />Bla</a>
非常感谢任何帮助。感谢。
PS:
当前代码:
using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
namespace Selenium
{
class Program
{
static void Main(string[] args)
{
try
{
IWebDriver driver = new ChromeDriver(@"D:\Selenium");
driver.Navigate().GoToUrl("http://www.doogal.co.uk/UKPostcodes.php?Search=AB1");
var test = driver.FindElement(By.CssSelector("a[href^='UKPostcodesKML']"));
driver.Close();
}
catch (Exception e)
{
throw;
}
}
}
}
答案 0 :(得分:1)
您可以使用下面的部分链接文字。
driver.findElement(By.partialLinkText("Bla"))
或
如果href对于该锚是唯一的,那么您可以使用如下的css选择器来获取该特定锚。
driver.FindElement(By.CssSelector("a[href=xyz/bla.txt]")
答案 1 :(得分:0)
这应该适合你:
driver.findElement(By.xpath("//a[contains(text(), 'KML format')]")).click();
或者这个:
driver.findElement(By.partialLinkText("KML format")).click();