根据相邻链接文本选择可拖动元素 - Ruby Selenium

时间:2015-01-04 00:39:01

标签: html ruby selenium webdriver

我正在使用Selenium自动化一些工作,我试图按排序顺序拖放一个列表。所以我有一个链接名称列表,并循环通过,这样我可以将[drag]元素拖放到页面顶部。

我无法弄清楚如何使用link_text(在本例中为“Audit:”)抓取[drag]句柄元素。

我尝试使用link_text定位器选择所需的元素,然后使用.attribute(“id”)来获取对于链接和[拖动]句柄应该相同的id。问题是我得到一个id的空字符串而不是“evaluation_422”

reversed.each do |form|
    puts form
    eval = browser.find_element(link_text: "#{form}")
    id = eval.attribute("id")
    puts id 
    #returns blank string
end

非常感谢任何帮助!以下是我试图引用的HTML。

<li id="evaluation_422" class="evaluation">
<div class="right">
<span class="handle">[drag]</span>
<a href="/evaluations/422/edit">
<span>Audit:    </span>
</a>

1 个答案:

答案 0 :(得分:0)

好吧所以我终于通过抓住碰巧包含评估编号的链接的href来解决这个问题,所以我能够使用这个选择正确的句柄元素:

reversed.each do |form|
    href = browser.find_element(link_text: form).attribute("href")
    eval_num = href.gsub("https://thisistheurl.com/evaluations/","").gsub("/edit","")
    handle = browser.find_element(xpath: ".//*[@id='evaluation_#{eval_num}']/span")
    top = browser.find_element(class_name: "evaluation")
    browser.action.drag_and_drop(handle, top).perform
end