ruby - Selenium-Webdriver:找到元素后获取属性

标签 ruby selenium-webdriver

我对自动化的东西还很陌生,所以这听起来像是一个愚蠢的问题。 不过,在发布问题之前,我确实用谷歌搜索了一下 :)

问题来了

我正在 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/

相关文章:

python - 无法单击下拉列表 Selenium 中的选项

c# - Selenium/C# WebDriverWait 不等待

python - Selenium Python 遍历它在第一行停止的行表

java - org.openqa.selenium.support.ui.UnexpectedTagNameException : Element should have been "select" but was "span" while selecting a dropdown value

java - 使用 Selenium 从具有相同类名的 ajax 下拉元素中选择值

ruby - 在 Ruby on Rails 中,将 rake 任务和测试文件的辅助函数放在哪里?

ruby-on-rails - 两个数组的交集为空

ruby-on-rails - 在 Rails/Cloudfront/Heroku 中设置 Assets 缓存过期

ruby-on-rails - Ruby 1.9 与 rails 2.3 兼容吗?

mysql - 创建 mysql 行/列