我试图在java中使用selenium web驱动程序测试搜索UI
如果我点击结果,它会显示该结果的一些属性
所以现在当我点击第一个结果时,webdriver能够通过FindElementsByXpath("//li[@class='clickable ng-binding ng-scope']")
来找到这些属性
还试过findElementsByCss("*[class='clickable ng-binding ng-scope']")
但是当webdriver点击第二个结果时,它会显示它们的属性,但是webdriver无法找到属性(与第一个类名相同)。
这里有什么帮助吗?
因为ID是唯一且不同的,所以不能使用Xpath
我使用this-
点击结果findElement(By.xpath("/html/body/div[1]/div/div/div[1]/div[2]/div[1]/div[2]/div/els-result["+num+"]/div")).click();
其中num
是结果编号
*堆栈跟踪
org.openqa.selenium.TimeoutException:预期的条件失败:等待By.cssSelector定位的所有元素的可见性:* [class =' clickable ng-binding ng-scope'](试过为15)第二个(MILLISECONDS间隔为500) 构建信息:版本:' 3.1.0',版本:' 86a5d70',时间:' 2017-02-16 07:57:44 -0800' 系统信息:主持人:'',ip:'',os.name:' Mac OS X',os.arch:' x86_64&# 39;,os.version:' 10.12.3',java.version:' 1.8.0_121' 驱动程序信息:org.openqa.selenium.firefox.FirefoxDriver 功能[{rotating = false,raisesAccessibilityExceptions = false,marionette = true,appBuildId = 20170125094131,version =,platform = MAC,proxy = {},command_id = 1,specificationLevel = 0,acceptSslCerts = false,processId = 22487,browserVersion = 51.0 .1,platformVersion = 16.4.0,XULappId = {ec8030f7-c20a-464f-9b0e-13a3a9e97384},browserName = firefox,takesScreenshot = true,takesElementScreenshot = true,platformName = darwin,firefox_profile = UEsDBBQACAgIAOl6aUoAAAAAAAAAA ...,unexpectedAlertBehaviour = dismiss} ] 会话ID:df2df541-1966-5a4b-871c-7cd8c295f4eb at org.openqa.selenium.support.ui.WebDriverWait.timeoutException(WebDriverWait.java:80) 在org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:257) 在cucumber.stepdefination.DataSearch.FindElementsByCss(DataSearch.java:166) 在cucumber.stepdefination.AssestCountSD.assest_count_matches_list(AssestCountSD.java:76) at cucumber.stepdefination.AssestCountSD.for_each_source_assest_count_matches_that_in_list_on_right(AssestCountSD.java:51) 在✽.Then对于每个源的assest计数与右边列表中的匹配(/Users/malikh/Documents/workspace/cucumber/src/test/resource/assetCount.feature:6)
答案 0 :(得分:0)
我建议使用Firefox浏览器并安装一个名为' Firepath'的扩展程序。这将有助于您使用' Xpath'来定位UI元素。和' CSS'。