selenium无法找到元素按钮

时间:2015-09-16 00:19:01

标签: c# selenium element

我想在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;在下一页

4 个答案:

答案 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();

*代码未经过优化,但效果很好。 (我用的第一部分是等待按钮加载)。