gpt4 book ai didi

ruby - Ruby 循环 | Selenium |网络测试

转载 作者:行者123 更新时间:2023-11-28 21:36:30 25 4
gpt4 key购买 nike

我正在尝试编写一些 ruby​​ 来执行以下操作:

我正在测试一个网页,该网页有一个表单、一个搜索按钮和下面的搜索结果。

当我在表格中输入发票编号时,例如123456 和我点击“搜索”按钮,如果发票已成功保存,那么它将显示在“搜索结果”部分下,如果没有,则会显示“未找到结果”。有时数据库需要几秒钟才能完成处理发票,所以我想做一个循环,每隔几秒钟不断按下搜索按钮,直到找到发票,一旦满足条件,就做其他事情。

最佳答案

您可以设置一个 while 循环,一旦找到满足特定条件的 WebElement,该循环就会中断。

# Keep track of whether or not invoice has been found
found = false

# First, attempt to locate the desired invoice
begin
# click the search button
driver.find_element(:name, "search_button").click

# check if invoice exists, set found to true if it does
expect(driver.find_element(some_locator_here).displayed?).to eql true
found = true

rescue Selenium::WebDriver::Error::NoSuchElementError
# catch NoSuchElementError if invoice does not exist, leave found as false
puts("Element not found")

# if invoice is not found, continue trying to find it in a loop
while found == false do
begin
# click the search button
driver.find_element(:name, "search_button").click

# attempt to locate the invoice
expect(driver.find_element(some_locator_here).displayed?).to eql true
found = true

rescue Selenium::WebDriver::Error::NoSuchElementError
puts("Element not found")

这将单击搜索按钮并尝试在循环中找到所需的发票,然后如果所需的发票不存在则捕获 NoSuchElementError。您需要将 some_locator_here 替换为类似 :name, "invoice_name" 的内容,以便您可以找到您的发票并确定是否已找到它。希望这能有所帮助。

关于ruby - Ruby 循环 | Selenium |网络测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58310841/

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