我想在c#
中使用selenium来获取此按钮<a id="1|0AqnCSdkjQ0|none" href="" target="_self" rel="nofollow" class="download_link 1">Download</a>
我尝试过id和class但是它没有用。
这是网页: http://www.mp3juices.cc/ - &gt;在下一页
答案 0 :(得分:1)
您的代码因“复合类”错误而失败,因为您基本上要求两个类名
该按钮具有类download_link
。
如果您执行driver.findElements(By.className("download_link"))
之类的操作,您将获得所有按钮的列表,并获得您想要的任何按钮。
(上面的代码片段是Java,因此您可能需要将其调整为C#)
答案 1 :(得分:0)
您可以将其用作解决方案
driver.findElement(By.xpath("//a[@class='download_link 1'] and contains(text(),'Download')"));
答案 2 :(得分:0)
你试过吗
driver.FindElement(By.CssSelector("a.download_link.2")
当您尝试使用&#34; download_link 2&#34;你要求两个班级名字。您可以在CSS Selector中指定两个类名(或更多),并在它们之间放置一个句点。上面的CSS选择器被视为查找A
个标记download_link
和类2
。
答案 3 :(得分:-1)
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
try
{
IWebElement myDynamicElement = wait.Until<IWebElement>((d) =>
{
try
{
return d.FindElement(By.ClassName("dl_link 1"));
}
catch
{
return null;
}
});
}
catch(Exception e)
{
}
ReadOnlyCollection<IWebElement> lists = driver.FindElements(By.ClassName("download_link"));
lists[0].Click();
*代码未经过优化,但效果很好。 (我用的第一部分是等待按钮加载)。