【问题标题】:Selenium Webdriver- Unable to search with css or xpath but search is fine with 'by id' or 'by class'Selenium Webdriver - 无法使用 css 或 xpath 进行搜索,但使用 'by id' 或 'by class' 可以进行搜索
【发布时间】:2016-05-10 21:29:12
【问题描述】:

我正在使用 Eclipse Mars 和 JDK 1.8。我写了以下代码:

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public class test1 {
    public static void main(String[] args) {

System.setProperty("webdriver.chrome.driver", "D://chromedriver.exe");
WebDriver d1=new ChromeDriver();
WebElement e1; 
d1.get("https://www.google.co.in/");

现在以下行完美执行:

e1=d1.findElement(By.id("lst-ib"));

但是,如果我像下面这样使用 css 或 xpath 进行搜索,则没有任何结果。

e1=d1.findElement(By.cssSelector("input[class='gsfi'][name='q'][id='lst-ib']"));

e1=d1.findElement(By.xpath("input[@class='gsfi'][@name='q'][@id='lst-ib']"));

【问题讨论】:

  • 拜托,你能检查一下你的 selenium 和 chromedriver 是否都更新了吗?
  • CSS 选择器似乎应该可以工作。 XPath 开头缺少// (//input[@class='gsfi'][....)
  • 我正在使用 Selenium 2.53 和 Chrome 驱动程序 2,21。

标签: java css selenium xpath


【解决方案1】:

将此用于 xpath :

 d1.findElement(By.xpath("//*[@id=\"lst-ib\"]"))

将此用于 css 选择器:

d1.findElement(By.cssSelector("input#lst-ib.gsfi"))

【讨论】:

  • 是的,它可以工作:) 但我无法解释为什么我的原始代码不起作用。我在早期版本(Kepler 和 Java 7)中工作时使用了这些类型的选择器。
  • 您可以使用 firebug 来检查 css 路径或 xpath 。我也使用 Selenium IDE 验证了路径。
猜你喜欢
  • 2021-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-06
  • 2017-03-11
  • 1970-01-01
  • 2021-05-03
相关资源
最近更新 更多