我在使用位于span中的linkText选择元素时遇到问题。在Chrome中,它可以很好地工作,但在Firefox中它并不是出于某种原因,我已经好几个小时都无法理解它了。我正在尝试按如下方式找到元素:login.wait.until(ExpectedConditions.elementToBeClickable(By.linkText("Kassa"))).click();
但是它根本找不到它。我注意到位于上部导航栏和文本中的所有其他元素都不在span标记中,它找到了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>
代码段:
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
答案 0 :(得分:0)
虽然如果某个代码适用于chrome,它也可以在firefox上运行;但如果它不起作用,那么你可以尝试使用以下方法找到所述元素:
<强>更新:强>
WebElement navElement = driver.findElement(By.cssSelector("div.container-fluid a>span.btn.btn-warning"));
Actions action = new Actions(driver);
action.moveToElement(navElement).click().build().perform();