2014-03-07 30 views
0

我有5個按鈕的一頁,我需要找到名稱「搜索」(與前沿和後空格)CSSSelector無法與名稱參數來定位元素

按鈕,當我嘗試這兩個(打印僅舉用於測試目的):

System.out.println(driver.findElements(By.cssSelector("a.gxi-button")).get(1).getText()); 
System.out.println(driver.findElement(By.cssSelector("a.gxi-button[name=' Search ']")).getText()); 

的第一個命令其reutrning文本「搜索」,但對第二個命令其拋出異常「org.openqa.selenium.NoSuchElementException」

有人能指導我什麼,我做錯了這裏。它似乎是領先和尾隨空間在這裏造成問題。任何人都可以指導如何處理這個? 注:我已經嘗試過'搜索'和'搜索',並且在兩種情況下都會得到相同的異常

+0

「我可以看到前面一些空白 「搜索」。這是造成這個問題的原因嗎? - 好吧,你有沒有試過? – Smutje

+1

如果在選擇器中使用雙引號而不是單引號,該怎麼辦? 'By.cssSelector(「a.gxi-button [name = \」Search \「]」)' –

回答

1

您只需使用*=即可執行部分匹配。

System.out.println(driver.findElement(By.cssSelector("a.gxi-button[name*='Search']")).getText()); 

或者使用XPath(如果以上仍不能正常工作)

driver.findElement(By.xpath(".//a[@class='gxi-button' and contains(@name, 'Search')]")).getText(); 

或者使用XPath的normalize-space功能

driver.findElement(By.xpath(".//a[@class='gxi-button' and normalize-space(@name)='Search']).getText(); 
+0

感謝它爲我工作 – user3356037