当我最初在ck编辑器中单击链接图标时,它可以工作,但是当我重新运行代码时,它不是在ck编辑器中单击链接图标。
这是我最初使用的命令:
driver.findElement(By.xpath("//*[@id='cke_29']/span[1]")).click();
答案 0 :(得分:1)
使用WebDriverWait
处理动态元素。
WebDriverWait wait = new WebDriverWait(driver, 30);
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//a[starts-with(@id,'cke_')][@class='cke_button cke_button__link cke_button_off']"))).click();
答案 1 :(得分:0)
如@akshay-patil所述,请使用a
标签。原因是<a>
标签是链接本身……而不是跨度!
您应该使用:
driver.findElement(By.xpath("//*[@id='cke_29']")).click();
希望这会有所帮助!
答案 2 :(得分:0)
所需元素是启用了JavaScript的元素,因此对元素click()
进行CSS_SELECTOR
诱使 WebDriverWait 以便使元素可点击并且您可以使用以下任一Locator Strategies:
使用new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("a.cke_button.cke_button__link.cke_button_off[id^='cke_'][title^='Link']>span.cke_button_icon.cke_button__link_icon"))).click();
:
XPATH
使用new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//a[@class='cke_button cke_button__link cke_button_off' and starts-with(@id,'cke_')][starts-with(@title,'Link')]/span[@class='cke_button_icon cke_button__link_icon']"))).click();
:
Invoke-Command `
-Session $workingSession `
-ScriptBlock {
get-service *spool* -ComputerName server01
}