【问题标题】:webdriver can't find element on UIwebdriver 在 UI 上找不到元素
【发布时间】:2017-03-09 14:44:49
【问题描述】:

我正在尝试在 java 中使用 selenium Web 驱动程序测试搜索 UI
如果我点击结果,它会显示该结果的一些属性。
所以现在当我点击第一个结果时,webdriver 可以通过FindElementsByXpath("//li[@class='clickable ng-binding ng-scope']")找到这些属性
也试过findElementsByCss("*[class='clickable ng-binding ng-scope']")
但是当 webdriver 点击第二个结果时,它会显示它们的属性,但 webdriver 无法找到属性(与第一个具有相同的类名)。

这里有什么帮助吗?
不能使用 Xpath,因为 id 是唯一且不同的。


我使用这个点击结果-

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 秒) 500 毫秒间隔) 构建信息:版本:'3.1.0',修订:'86a5d70',时间:'2017-02-16 07:57:44 -0800' 系统信息:主机:'',ip:'',os.name:'Mac OS X',os.arch:'x86_64',os.version:'10.12.3',java.version:'1.8.0_121' 驱动信息:org.openqa.selenium.firefox.FirefoxDriver 功能 [{rotatable=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,takeScreenshot=true,takeElementScreenshot=true,platformName=darwin,firefox_profile=UEsDBBQACAgIAOl6aUoAAAAAAAAAA...,unexpectedAlertBehaviour=dismiss} ] 会话 ID:df2df541-1966-5a4b-871c-7cd8c295f4eb 在 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) 在 cucumber.stepdefination.AssestCountSD.for_each_source_assest_count_matches_that_in_list_on_right(AssestCountSD.java:51) 在✽。然后对于每个源资产计数与右侧列表中的匹配(/Users/malikh/Documents/workspace/cucumber/src/test/resource/assetCount.feature:6)

【问题讨论】:

  • FindElementsByCss(".clickable.ng-binding.ng-scope")怎么样
  • @eLRuLL 这也给出了超时错误。这也适用于第一个结果,但不适用于第二个结果
  • @Dillanm 也添加了 HTML
  • 你能把FindElementsByCss改成FindElementByCss试试看吗?
  • @All 我找到了解决办法——每次点击下一个结果之前刷新页面。它能够定位元素,但刷新是一种开销,并且会占用大量时间。知道有什么问题吗?

标签: selenium xpath selenium-webdriver css-selectors


【解决方案1】:

我建议使用 Firefox 浏览器并安装一个名为“Firepath”的扩展程序。这将帮助您使用“Xpath”和“CSS”定位 UI 元素。

【讨论】:

    猜你喜欢
    • 2021-10-17
    • 1970-01-01
    • 1970-01-01
    • 2016-03-20
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多