java - Selenium 没有使用 Chromedriver 通过 xpath 找到元素

标签 java selenium webdriver selenium-webdriver selenium-chromedriver

我正在使用 Chromedriver 尝试查找以下元素:

<td class="section-menuoption"
  onmouseover="this.className='section-menuoption-hilite';"
  onmouseout="this.className='section-menuoption';" align="left"
  onclick="self.jssDetails.location='products.php?xUser=kery&amp;xRand=123';">
  Scheduled Changes
</td>

在 Firefox 中使用 SeleniumIDE 时,我可以毫无问题地使用此选择器:
//*[contains(text(), 'Scheduled Changes')] 

但是,当我尝试将此选择器与 Chromedriver 一起使用时,出现“没有此类元素”错误(通过 Maven 运行)。我的 Chromedriver 代码如下所示:
WebElement box = driver.findElement(By.xpath("//*[contains(text(), 'Scheduled Changes')]"));
System.out.print(box.getText());
box.click();

我尝试了不同的引用策略、不同的 xpath(在 SeleniumIDE 中也能正确解析),但没有成功。我现在唯一能想到的就是更改我的 XPath 实现,但我什至不确定 Chromedriver 是否可行。

任何帮助将不胜感激。

最佳答案

首先,确保它不在任何类型的框架中。否则你需要先切换到框架,like this .

然后尝试使用 css 选择器而不是 XPath。例如(您可能需要尝试不同的变体):

WebElement box = driver.findElement(By.cssSelector("td[onclick*=\"self.jssDetails.location='products.php?xUser=kery&amp;xRand=123';\"]"));

此外,您可能希望发布您尝试过的每个 XPath,以帮助我们进行分析。

关于java - Selenium 没有使用 Chromedriver 通过 xpath 找到元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17933653/

相关文章:

python - Webdriver 忽略等待 - Firefox、Python

java - MongoDB select's/find 对于大量数据似乎具有相同的性能

java - 将依赖项注入(inject)到 Singleton 类中

Python。 Selenium 。拖放错误 'AttributeError: move_to requires a WebElement'

selenium - session 因 SO_TIMEOUT 而终止

selenium - 网格上的多个实例如何处理 Selenium 屏幕截图?

java - Ebean错误-模型没有增强?

java - 压缩 java 字符串(url)

javascript - Appium selenium 字段中的明文

java - 无法使用 Selenium 和 Java 11 导入 o​​rg.openqa.selenium.WebDriver