CSS Selector-Webdriver中的空格

时间:2015-06-25 03:31:51

标签: selenium selenium-webdriver css-selectors

当我试图在类名下面找到这个div时,我无法找到,

<div class="large 20 columns">..</div>

我尝试dr.findElement(By.cssSelector("div.large.20.columns']"));但无法找到。

请告诉我,有没有办法使用CSS Selector找到带有空格的类名。

3 个答案:

答案 0 :(得分:2)

这里的问题是&#34; 20&#34; class期望你使用像.20这样的类选择器,它不是一个有效的选择器,因为CSS idents不能以数字开头。

这应该有效:

dr.findElement(By.cssSelector("div.large.\\20.columns"));

由于某种原因,您的选择器字符串末尾也有']。这是尝试使用属性选择器的剩余部分吗?如果是这样,你也应该能够摆脱这种情况,但前提是确保页面具有正确顺序的类名:

dr.findElement(By.cssSelector("div[class='large 20 columns']"));

答案 1 :(得分:1)

一般来说,依赖面向布局的类名如large并不是一个好主意。我会用:

div.columns

如果这还不足以唯一地标识元素,我还会检查其他属性,特定父元素,子元素或相邻元素。

答案 2 :(得分:0)

由于类名无效,您无法找到该元素。 CSS类不能以数字开头(在您的情况下为20)。此外,CSS类名称不能包含空格,因为它们被视为不同的类。

请参阅提供的解释herehere