gpt4 book ai didi

ruby - 如何使用 Selenium Webdriver 根据 div 的内容执行操作?

转载 作者:数据小太阳 更新时间:2023-10-29 07:12:39 27 4
gpt4 key购买 nike

我有一个使用 Selenium Webdriver 和 Nokogiri 的 Ruby 应用程序。我想选择一个类,然后对于那个类对应的每个div,我想根据div的内容执行一个 Action 。

例如,我正在解析以下页面:

https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=puppies

这是一个搜索结果页面,我正在寻找描述中包含“Adoption”一词的第一个结果。因此机器人应该寻找带有 className: "result" 的 div,对于每个检查它的 .description div 是否包含单词“adoption”,如果包含,点击在 .link div 上。换句话说,如果 .description 不包含该词,则机器人会继续执行下一个 .result

这是我目前所拥有的,只需点击第一个结果:

require "selenium-webdriver"
require "nokogiri"
driver = Selenium::WebDriver.for :chrome
driver.navigate.to "https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=puppies"
driver.find_element(:class, "link").click

最佳答案

您可以使用 contains() 通过 XPath 获取包含“adopt”和“Adopt”的元素列表,然后使用联合运算符 (|) 合并“adopt”和“Adopt”的结果。见下面的代码:

driver = Selenium::WebDriver.for :chrome
driver.navigate.to "https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=puppies"
sleep 5
items = driver.find_elements(:xpath,"//div[@class='g']/div[contains(.,'Adopt')]/h3/a|//div[@class='g']/div[contains(.,'adopt')]/h3/a")
for element in items
linkText = element.text
print linkText
element.click
end

关于ruby - 如何使用 Selenium Webdriver 根据 div 的内容执行操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35763773/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com