我对自动化的东西还很陌生,所以这听起来像是一个愚蠢的问题。 不过,在发布问题之前,我确实用谷歌搜索了一下 :)
问题来了
我正在 Android 设备上进行自动化测试 其中一项测试是验证项目是否已标记为“收藏夹” 页面代码片段为:
<li class = "resultItem isFavorite" data-index="2">
<div class="name" data-cis="4ced6feb-3b5c-415a-ae1c-0b8bca8e3c85" onclick="return true">f,f</div>
</li>
我可以使用 el = @driver.find_element(:xpath, "//*[class='name' and text() ='f,f']")
。我希望 el.class 会告诉我 resultItem isFavorite。
相反,我得到的是:Selenium:WebDriver::Element
如果某个项目未标记为收藏,则不会在该字段中添加 isFavorite 标志。 我希望使用 isFavorite 来验证某个项目是否被标记为收藏,但我似乎无法将其放入变量中。
如有任何帮助,我们将不胜感激。
谢谢,
杰夫
最佳答案
你真正想要的是像下面这样的东西:
# Note: Possibly incorrect Ruby code here.
# Written from memory.
el = @driver.find_element(:xpath, "/your/xpath/here")
# Could also your el["class"]
element_class_attribute = el.attribute("class")
通常,使用像 src
(如 el.src
)这样的大多数属性名称会给您带来运行时错误。但是,恰巧class
在Ruby中有特殊的含义,每个对象都有一个class
属性,就是Ruby类。
关于ruby - Selenium-Webdriver:找到元素后获取属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14288917/