如何使用Selenium Java单击NG点击按钮



我正在为我的工作进行自动网络测试,并且我的代码遇到了麻烦。它没有做任何事情这是我要使用的网站的代码:<button class="fa fa-2x sidebar-button pull-left fa-bars" ng-click="offcanvasleft()" ng-class="activeLeft ? 'fa-bars' : 'fa-bars'">::before</button>

这是我的代码: driver.findElement(By.cssSelector("//*[@id="mainrow"]/div/div/button[1]")).click();

有人可以帮我吗?谢谢!

您可以这样使用:

WebELement btnBefore= driver.findElement(By.XPATH("//button[contains(text(),'::before')]");
btnBefore.click();

根据 html ,您共享了 webelement 是a em> angular元素,因此您必须诱导 webdriverwait 预期条件条款为 element tobeclickable ,如下:

new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@class='fa fa-2x sidebar-button pull-left fa-bars' and starts-with(@ng-class,'activeLeft')]"))).click(); 
driver.findElement(By.XPATH("//button[@class="fa fa-2x sidebar-button pull-left fa-bars]").click();

这是假设Java语法是正确的。我主要用python写硒。

最新更新