Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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 Web驱动程序-找不到元素_Java_Xpath_Selenium Webdriver - Fatal编程技术网

Java Selenium Web驱动程序-找不到元素

Java Selenium Web驱动程序-找不到元素,java,xpath,selenium-webdriver,Java,Xpath,Selenium Webdriver,我是新来的Selenium WebDriver。试图找到一个元素并单击它 但不断出现以下错误: 找不到元素 Firepath提供了以下xpath: "xpath = html/body/header/div/ul/li[2]/a/span[1]" 相关的HTML代码是: <ul class="nav navbar-nav navbar-right top-nav "> <li class="identity has-icon"> <a href="......."

我是新来的
Selenium WebDriver
。试图找到一个元素并单击它

但不断出现以下错误:

找不到元素

Firepath
提供了以下xpath:

"xpath = html/body/header/div/ul/li[2]/a/span[1]"
相关的HTML代码是:

<ul class="nav navbar-nav navbar-right top-nav ">
<li class="identity has-icon">
<a href=".......">
</li>
<li class="settings has-icon">
<a href=".......">
<span class="icon icon-cogs" aria-hidden="true" role="presentation"/>
**<span class="nav-title">Settings</span>**
</a>
</li>

有人能帮我找到一个解决方案吗?

它不需要一个
contains
,而且您的所有语句都在xpath中包含了两次
/
,这是不正确的

请使用下面的语句

/@用于获取span类,即导航标题和
//其范围文本为“设置”
driver.findelelement(By.xpath(“//li/a/span[@class='nav-title'和.='Settings']))。单击();
您需要直接单击“a(link)”标记,因为内部标记仅充当css(页面看起来使用了引导)。尝试下面的代码,它应该可以工作

driver.findElement(By.xpath("//a[contains(@href,'PUT href texts here')]")).click()

如果这不起作用,请在评论中提及浏览器和selenium版本。

您需要单击带有文本“设置”的span元素。因此,下面的xpath将搜索一个span元素,该元素将设置作为文本包含在任何锚标记中

.//a/descendant::*[contains(text(),'Settings')]

在上一个xpath中,您使用了div,而不是使用span

"//span[contains(@class, 'nav-title')]"

试试下面的任何一个。您将获得元素

//span[@class='icon icon-cogs']
//span[@class='icon icon-cogs'][@role='presentation']
//span[@class='icon icon-cogs'][@role='presentation']/span

希望它能帮助您

这个简单的CSS选择器可能会工作。如果没有更多的HTML页面,很难判断它是否足够独特。它正在寻找一个带有class
nav title
SPAN
标记

driver.findElement(By.cssSelector("span.nav-title")).click();

请编辑更多信息。不鼓励只编写代码和“试试这个”答案,因为它们不包含可搜索的内容,也不解释为什么有人应该“试试这个”。我们在这里努力成为知识资源。我收到上述解决方案的“无法定位元素”。我收到以下错误:“元素当前不可见,因此可能无法与之交互”。我收到以下错误:“元素当前不可见,因此可能无法与之交互”。这意味着您正在找到正确的元素,现在你必须让它可见。如果没有HTML页面,我就帮不了你。您必须手动查找页面上的元素,并找出如何使其可见。。。打开面板等。谢谢。这很有效。为什么在相对路径中添加“//li/a…”可以找到元素,但“//span…”显示“元素当前不可见错误”?“.”语法在代码中的含义是什么?它不仅与更改有关,还取决于使用
的元素文本值的附加识别因子。如果您接受它为@user6507067,我将不胜感激。我很高兴它能工作。实际上,您可以使用这个技巧来为在现代web技术框架(bootstrap、angularjs等)中编写的页面查找元素的xpath。
driver.findElement(By.cssSelector("span.nav-title")).click();