Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.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中单击此按钮_Java_Selenium - Fatal编程技术网

如何使用java在selenium中单击此按钮

如何使用java在selenium中单击此按钮,java,selenium,Java,Selenium,这是我试图点击的按钮 <a href="/logout/?t=1550846736%2C09865a11c32ef819fb524c408c8f36cc" class="menu-linkRow">Log out</a> 你可以试试 driver.findElement(by.linkText("Log out")).click(); 如果你能提供更多的细节,比如你得到的异常和更多,那就很清楚了 干杯 通常通过xpath查找元素是个坏主意。 尝试其他方法,例如: 通

这是我试图点击的按钮

<a href="/logout/?t=1550846736%2C09865a11c32ef819fb524c408c8f36cc" class="menu-linkRow">Log out</a>
你可以试试

driver.findElement(by.linkText("Log out")).click();
如果你能提供更多的细节,比如你得到的异常和更多,那就很清楚了


干杯

通常通过xpath查找元素是个坏主意。

尝试其他方法,例如:

  • 通过CSS选择器定位(每次都应该是您的第一个方法)(这将帮助您理解它们)。这包括在元素属性上指定模式的能力,例如:
  • 通过xpath以外的任何其他策略进行定位
  • 通过xpath定位是最后的选择
通过xpath进行定位被认为是一项昂贵的操作,而且非常难以维护

您也可以使用您喜欢的任何策略,但获取元素集合,然后通过您最喜欢的编程技术(即使用Java8 Streams api)将其过滤掉,o只需在元素内运行另一个元素搜索,例如:

元素。通过

我强烈建议采用css选择器,因为它们被大量用于为任何现代web应用程序添加样式。因此,如果开发人员设法用css选择器解决样式问题,您也将能够

driver.findElement(by.Css('a.menu-linkRow'))。单击()

另外,您的第二句话
“//a[@href='/logout/?t=1550846736%2C09865a11c32ef819fb524c408c8f36cc']”“
正在使用基于会话的定位器,该定位器在另一个会话上不起作用


不需要使用文本和xpath,因为这将比css慢。

最后一条评论:在定位元素时通常有两个问题:没有匹配项如果遇到第二类问题,则匹配项太多,请将整个DOM作为一个要点发布,这样我们可以更好地帮助您了解正在发生的事情。如果您有多个
菜单链接行
类,那么
by.linkText(“注销”)
将是您的答案
driver.findElement(by.linkText("Log out")).click();
[attribute~=value]  [title~=flower] Selects all elements with a title attribute containing the word "flower"