Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法使用Selenium在LinkedIn中定位元素_Java_Selenium_Testing - Fatal编程技术网

Java 无法使用Selenium在LinkedIn中定位元素

Java 无法使用Selenium在LinkedIn中定位元素,java,selenium,testing,Java,Selenium,Testing,我正试图用Selenium编写我的第一个程序,该程序登录到我的个人资料中,然后搜索特定的人或公司。在我想从搜索结果输入个人资料之前,一切都正常。我的密码在这里 public static void main(String args[]){ ChromeDriverManager.getInstance(DriverManagerType.CHROME).setup(); WebDriver driver = new ChromeDriver(); final Strin

我正试图用Selenium编写我的第一个程序,该程序登录到我的个人资料中,然后搜索特定的人或公司。在我想从搜索结果输入个人资料之前,一切都正常。我的密码在这里

 public static void main(String args[]){

   ChromeDriverManager.getInstance(DriverManagerType.CHROME).setup();

   WebDriver driver = new ChromeDriver();

   final String username = "username";
   final String password = "password";

   driver.get("https://www.linkedin.com/");
   driver.manage().window().maximize();

   driver.findElement(By.xpath("/html/body/nav/section[2]/form/div[1]/div[1]/input"))
           .sendKeys(username);

   driver.findElement(By.xpath("/html/body/nav/section[2]/form/div[1]/div[2]/input"))
           .sendKeys(password);

   driver.findElement(By.xpath("/html/body/nav/section[2]/form/div[2]/button"))
           .click();

   driver.findElement(By.xpath("//*[@id=\"ember31\"]/input"))
           .sendKeys("Bill Gates", Keys.ENTER);

   WebElement element = driver.findElement(By.xpath("//*[@id=\"ember503\"]/span/span[1]/span[1]"));
   element.click();
}
它在线程“main”org.openqa.selenium.NoSuchElementException中给出了错误
异常:没有这样的元素:无法定位元素:{“method”:“xpath”,“selector”:“/*[@id=“ember503”]/span/span/span[1]/span[1]”}

因此,首先我尝试了不同的XPath,但没有一个有效。然后我尝试了
cssSelector
还是什么都没有。然后我试了这个

  WebDriverWait wait = new WebDriverWait(driver, 10);
  wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//[@id=\"ember503\"]/span/span[1]/span[1)));
并在线程“main”org.openqa.selenium.TimeoutException中获得另一个错误
异常:预期条件失败:等待元素可单击:By.xpath://*[@id=“ember503”]/span/span[1]/span[1](以500毫秒的间隔尝试10秒)


所以我发现selenium无法找到每一个需要花费时间才能加载到页面上的元素。你能帮我理解我在哪里犯了错误吗?

每次搜索后LinkedIn上的XPath都会发生变化,即使搜索完全相同

第一次搜索的最佳结果

/*[@id=“ember2258”]/span/span/span[1]

第二次搜索的最佳结果

/*[@id=“ember2460”]/span/span/span/span[1]

解决这个问题的一种方法是复制完整的XPath,因为它应该保持不变,也就是说它是一个较长的字符串,但可以工作

第一次搜索和第二次搜索结果为完整XPath。
/html/body/div[6]/div[4]/div[3]/div/div[2]/div/div/div/div/div/ul/li[1]/div/div/div/div[2]/a/h3/span/span/span/span[1]

/html/body/div[6]/div[4]/div[3]/div/div[2]/div/div/div/div/ul/li[1]/div/div/div/div/div[2]/a/h3/span/span/span/span/span[1]
每次搜索后LinkedIn上的XPath都会发生变化,即使搜索是完全相同的

第一次搜索的最佳结果

/*[@id=“ember2258”]/span/span/span[1]

第二次搜索的最佳结果

/*[@id=“ember2460”]/span/span/span/span[1]

解决这个问题的一种方法是复制完整的XPath,因为它应该保持不变,也就是说它是一个较长的字符串,但可以工作

第一次搜索和第二次搜索结果为完整XPath。
/html/body/div[6]/div[4]/div[3]/div/div[2]/div/div/div/div/div/ul/li[1]/div/div/div/div[2]/a/h3/span/span/span/span[1]

/html/body/div[6]/div[4]/div[3]/div/div[2]/div/div/div/div/ul/li[1]/div/div/div/div[2]/a/h3/span/span/span/span[1]

我假设问题是,即使搜索结果相同,xPath在每个搜索结果之后也会发生变化。我尝试搜索同一个东西两次,得到了两个不同的XPath<代码>/*[@id=“ember1823”]/span/span/span[1]和
/*[@id=“ember2048”]/span/span/span[1]
。检查并查看您的XPath是否正在更改?如果是这样,这可能就是它找不到您的元素的原因。我假设问题是,每次搜索结果之后xPath都会发生变化,即使搜索结果相同。我尝试搜索同一个东西两次,得到了两个不同的XPath<代码>/*[@id=“ember1823”]/span/span/span[1]和
/*[@id=“ember2048”]/span/span/span[1]
。检查并查看您的XPath是否正在更改?如果是这样,这可能就是它找不到您的元素的原因。感谢您的回复,但仍然不走运,同样的错误
无法定位元素
这可能对您有用,谢谢,所以我所做的是将xpath更改为
“//span[@class='name actor name']”
,这是静态的,而不是动态的,并且有效:)感谢您的回复,但仍然不走运,同样的错误
无法定位元素
这可能对您有用,谢谢,所以我所做的是将xpath更改为
“//span[@class='name-actor-name']”“
,它是静态的,而不是动态的,并且有效:)