0

突然webdriver CSS定位器停止工作在我的代碼中。 (他們在前幾天工作)Webdriver CSS定位器突然停止在IE11上工作,而xpath定位器可以工作

當我打開IE 11的開發人員工具(通過按F12在Internet Explorer中)我看到一般性錯誤,說「 InvalidSelectorError:指定了無效或非法的選擇器」,但它doesn給我看看定位器本身

有沒有辦法測試開發人員工具上的css定位器,或者檢查什麼是IE瀏覽器?

我通過該命令是非常直接的:

wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("span:contains('Information')"))); 
+0

嗨,我想CSS選擇與包含文本將不會在webdriver..correct工作? –

+0

如上所述 - 選擇器工作得很好 – Dror

回答

0

:contains不是CSS3的一部分。

請參閱https://www.w3.org/TR/css3-selectors/#selectors

您可以嘗試By.cssSelector("span[innertext='Information']")

+0

真的它不是css3的一部分,但是它受到了selenium的支持(Selenium支持css1和css2也支持這種搜索類型)。 看到這個鏈接(在底部)例如:https://saucelabs.com/selenium/css-selectors 我一直在使用這些近一年。突然停止工作 – Dror

+0

https://msdn.microsoft.com/en-us/library/hh781508(v=vs.85).aspx按照IE CSS兼容性文檔,它沒有':contains'選擇器。如果IE不支持,硒不能做任何事情。 – parishodak

+1

@Dror':contains'不是任何CSS標準的一部分。句號。不要將長期棄用的Selenium RC API中可用的內容與Selenium WebDriver API中提供的內容混淆起來。 RC使用了Sizzle,jQuery CSS選擇器引擎,而WebDriver則遵循瀏覽器的本機CSS選擇器引擎。鏈接到的SauceLabs頁面特定於RC,並且您可以通過在定位器中引用「css ='來指示它,這是一個RC構造。 – JimEvans