我正在尝试单击没有链接文本的超链接。
我有:
deviceTheme
我尝试过:
<a id="fontColor" href="f?p=420181023:1:12264109389989:1416222:NO::P1_SEMCODE:20190">
<strong>Check</strong>
</a>
导致No.SuchElementException
driver.findElement(By.xpath("//a[@href='f?p=420181023:1:12264109389989:1416222:NO::P1_SEMCODE:20190']")).click();
什么都不做
我从不同的网站阅读了不同的材料,但似乎没有提到没有链接文本的超链接。
是否可以替代driver.findElement(By.id("fontColor")).click();
来源:
答案 0 :(得分:2)
所需元素看起来是动态元素,因此调用click()
时需要诱使 WebDriverWait 使所需元素可点击,并且您可以使用以下解决方案:
cssSelector
:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("a#fontColor[href*='P1_SEMCODE']>strong"))).click();
xpath
:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//a[@id='fontColor' and contains(@href, 'P1_SEMCODE')]/strong[contains(., 'Check')]"))).click();