【发布时间】:2017-04-30 16:36:44
【问题描述】:
我在通过位于跨度中的 linkText 选择元素时遇到问题。在 Chrome 中它可以完美运行,但在 Firefox 中它由于某种原因无法正常工作,而且我已经好几个小时都无法理解它。我正在尝试按如下方式定位元素:login.wait.until(ExpectedConditions.elementToBeClickable(By.linkText("Kassa"))).click(); 但是它根本找不到它。我注意到位于上部导航栏中的所有其他元素并且文本不在它找到的跨度标记中 easley,但是在它找不到的跨度中。有什么区别以及达到该元素的最佳方式是什么。因为在这种情况下,通过 linkText 查找似乎是完美的。谢谢!附上 HTML:
<nav class="site-navbar navbar navbar-inverse navbar-fixed-top bg-teal-600" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<div class="navbar-brand site-gridmenu-toggle" data-toggle="gridmenu">
<span class="navbar-brand-text">whatever</span>
</div>
<button type="button" class="navbar-toggle hamburger hamburger-close collapsed" data-target="#site-navbar-collapse" data-toggle="collapse">
<i class="hamburger-bar" aria-hidden="true"></i>
</button>
<button type="button" class="navbar-avatar navbar-toggle padding-horizontal-0" data-toggle="dropdown" href="#" aria-expanded="false" data-animation="scale-up" role="button">
<span class="avatar avatar-online" style="top: -3px">
<img src="https://whatever.png" alt="..."> <i></i>
</span>
</button>
<a type="button" href="https://whatever" class="navbar-toggle padding-top-15 padding-horizontal-0">
<span class="btn btn-warning"> Kassa </span>
</a>
代码 sn-p:
System.setProperty("webdriver.gecko.driver","C:\\Utility\\BrowserDrivers\\geckodriver.exe");
driver = new FirefoxDriver();
wait = new WebDriverWait(driver, 10);
driver.manage().window().maximize();
然后我将通过基本身份验证进入网页,不会在此处发布此数据,并且基本上在我登陆的页面上我想尝试找到这样的元素:
login.wait.until(ExpectedConditions.elementToBeClickable(By.linkText("Kassa"))).click();
导航图片。吧nav. bar
【问题讨论】:
-
可以添加代码sn-p吗?
-
@bad_deadpool 我添加了,希望如果您需要任何其他信息,请告诉我就足够了,但没有什么复杂的,只是我用来尝试定位一个元素的一种方法。但最重要的是它在 Chrome 中完美运行,这意味着代码肯定没问题。我正在使用 Selenium 3.4、GeckoDriver 0.16 和 Firefox 53.0,我尝试降级一个版本的 Firefox,同样的问题。
标签: firefox selenium-webdriver automation