这是我尝试单击的按钮
<a href="/logout/?t=1550846736%2C09865a11c32ef819fb524c408c8f36cc" class="menu-linkRow">Log out</a>
这是我尝试过的
driver.findElement(By.xpath("//a[contains(@class,'menu-linkRow')]")).click();
driver.findElement(By.xpath("//a[@href='/logout/?t=1550846736%2C09865a11c32ef819fb524c408c8f36cc']")).click();
答案 0 :(得分:1)
您可以尝试
driver.findElement(by.linkText("Log out")).click();
很明显,如果提供更多详细信息,例如您正在获得的例外以及更多信息!
干杯!
答案 1 :(得分:0)
通常通过 xpath 定位元素是一个坏主意。
尝试其他方法,例如:
[attribute~=value] [title~=flower] Selects all elements with a title attribute containing the word "flower"
通过xpath定位被认为是一项昂贵的操作,并且很难维护。
您还可以使用任何喜欢的策略,但是可以获取元素的集合,然后通过自己喜欢的编程技术(即使用Java8 Streams api)将其过滤掉,或者仅在元素内部运行另一个元素搜索,例如:< / p>
element.findBy ...
我强烈建议您采用css选择器,因为它们经常被用来向任何现代Web应用程序添加样式。因此,如果开发人员设法使用CSS选择器解决样式问题,您也将能够做到。
答案 2 :(得分:0)
driver.findElement(by.Css('a.menu-linkRow')).click();
您的第二句话"//a[@href='/logout/?t=1550846736%2C09865a11c32ef819fb524c408c8f36cc']"
使用的是基于会话的定位器,该定位器在其他会话中将不起作用。
不需要使用文本和xpath,因为它会比CSS慢。