[英]Unable to find ::before css selector element in selenium webdriver
我想測試復選框選中或未選中的情況。
這是復選框選中的html代碼
<div classs="input-control checkbox">
<span class="check">
::before
</span>
</div>
::before
是 css 選擇器。
當我將鼠標懸停在復選框上時,它會將 webelement 顯示為span.check::before
但
driver.FindElement(By.CssSelector("span.check::before"));
拋出元素未找到異常。
任何幫助將不勝感激。
就我而言,我已經從 CSS 選擇器中刪除了偽元素::before
,如下所示,它可以工作
Actions action = new Actions(driver);
action.moveToElement(driver.findElement(By.cssSelector("span.check::before"))).build().perform();
Actions action = new Actions(driver);
action.moveToElement(driver.findElement(By.cssSelector("span.check"))).build().perform();
我不確定您的確切 html,因為評論提到您的示例 html 中沒有::after
。 根據您的描述,這似乎與以下類似,但不確定這是否是您的確切情況。
我已經利用鼠標移動,然后等待顯示修改后的 css/class 的元素。 鼠標將移動並懸停在第一個元素上,然后等待第二個元素出現在屏幕上。 這與單擊類似,然后等待元素出現。
懸停代碼示例 - 需要匹配您的代碼語言和結構...
[Actions Instance goes here].MoveToElement([IWebElementGoesHere]).Perform();
你也可以這樣做
[Actions Instance].Click([IWebElementGoesHere]).Perform();
此庫的參考: https : //code.google.com/p/selenium/wiki/AdvancedUserInteractions
我遇到過類似的偽 css 選擇器問題(::before alike),我使用 selenium java 的“Actions”類克服了這個問題。
Actions action = new Actions(driver);
action.moveToElement(driver.findElement(By.cssSelector("button[id$='save-button']"))).build().perform();
希望能幫助到你。
謝謝,桑帕斯
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.