我正在使用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>
答案 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