无法使用CSS选择器查找链接

时间:2014-08-26 21:58:37

标签: c# css selenium selenium-webdriver css-selectors

我尝试使用Selenium从谷歌收集一些结果但是我使用的CssSelector一直在返回"没有找到任何元素"。

这是我的代码。

//Open google page
IWebDriver driver = new FirefoxDriver();
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
driver.Navigate().GoToUrl("https://www.google.com/search?q=cheese");
wait.Until(driver1 => ((IJavaScriptExecutor)driver).ExecuteScript("return document.readyState").Equals("complete"));

//Get image link
IWebElement image_link = driver.FindElement(By.CssSelector("a[class='q qs']"));

异常发生在最后一行,而我试图获取的锚点就是这样写在网页上。

<a class="q qs" href="/search?q=cheese&amp;client=firefox-a&amp;hs=YWQ&amp;rls=org.mozilla:en-US:official&amp;source=lnms&amp;tbm=isch&amp;sa=X&amp;ei=ewL9U-S5FNGpyATTl4CgCA&amp;ved=0CAgQ_AUoAQ">Images</a>

出了什么问题?

3 个答案:

答案 0 :(得分:0)

我认为在link by text获取更可靠,更明确

IWebElement image_link = driver.FindElement(By.LinkText("Images"));

答案 1 :(得分:0)

你没有将css选择器传递给css类。你传递了一个按属性过滤的元素选择器。尝试:

By.CssSelector(".q.qs")

答案 2 :(得分:0)

https://www.simple-talk.com/dotnet/.net-framework/xpath,-css,-dom-and-selenium-the-rosetta-stone/

参考以上链接。 试试这段代码。

IWebElement image_link = driver.FindElement(By.CssSelector("a.q qs"));

使用xpath

IWebElement image_link = driver.FindElement(By.Xpath("//a[@class='q qs']"));