Selenium Firefox span标签

时间:2017-04-30 16:36:44

标签: firefox selenium-webdriver automation

我在使用位于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

1 个答案:

答案 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();