无法在selenium webdriver中找到::之前的css选择器元素

我想测试复选框已选中或未选中状态。

这是复选框选中的html代码

::before

::before是css选择器。

当我转移到复选框时,它显示webelement为span.check::before

 driver.FindElement(By.CssSelector("span.check::before")); 

抛出元素未找到exception。

任何帮助将受到高度赞赏。

我遇到过与伪css选择器类似的问题(::之前相似),我已经使用selenium java的“Actions”类克服了这个问题。

 Actions action = new Actions(driver); action.moveToElement(driver.findElement(By.cssSelector("button[id$='save-button']"))).build().perform(); 

希望能帮助到你。

谢谢你,桑帕斯

我不确定你的确切html,因为评论提到你的示例html中没有::after 。 根据您的描述,这似乎与下面类似,但不确定这是否是您的确切情况。

我已经使用了鼠标移动,然后等待显示修改后的css / class的元素。 鼠标将移动并hover到第一个元素,然后等待第二个元素出现在屏幕上。 这类似于click,然后等待元素出现。

hover代码示例 – 需要匹配您的代码语言和结构……

 [Actions Instance goes here].MoveToElement([IWebElementGoesHere]).Perform(); 

你也可以这样做

 [Actions Instance].Click([IWebElementGoesHere]).Perform(); 

此库的参考: https : //code.google.com/p/selenium/wiki/AdvancedUserInteractions