[英]How to get a list of the <li> elements in an <ul> with Selenium using Python?
[英]How to get a list of the <li> elements in an <ul> with Selenium in Ruby?
我正在使用Selenium WebDriver,我需要对第一个帐户项目执行操作(单击),执行某些操作,然后返回并再次对下一个项目重复该过程。 它可能最多可能包含90个帐户项目,因此我试图避免对所有90个帐户进行硬编码。任何想法如何可能遍历帐户列表?
<ul class="account-list"> <li class="account-item">one item</li> <li class="account-item">two items</li> <li class="account-item">three items</li> </ul>
您无法遍历Selenium中的元素列表,因为当DOM更改时,它们的对象引用将变为无效(StaleElement异常),但是您可以按索引号进行操作,只要列表的大小不变
elements = @driver.find_elements(css: ".account-item>a")
elements.size.times do |i|
@driver.find_element(css: ".account-list > li:nth-child(#{i})>a").click
# Do something
@driver.navigate.back
end
您可以通过按其css
获取所有元素,然后按以下方式遍历这些元素来做到这一点:
elems = driver.find_elements(:css => ".account-list > li")
url = driver.current_url
for i in 0..elems.size
# wait until the element loads
wait.until { driver.find_element(:css => ".account-list > li:nth-child(#{i})")}
elems[i].click()
#do your tests
# ...
# go back
driver.navigate.to url
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.