Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在SeleniumWebDriver的ruby警报框中写入If-else条件_Ruby_Testing_Selenium_Automation - Fatal编程技术网

如何在SeleniumWebDriver的ruby警报框中写入If-else条件

如何在SeleniumWebDriver的ruby警报框中写入If-else条件,ruby,testing,selenium,automation,Ruby,Testing,Selenium,Automation,如何在selenium for alert框中编写If-Else条件,这里我使用的是Ruby语言。 这是用于登录页面的。。输入错误的用户名、密码。。显示警报框并单击确定按钮。。 为此,我写了一封信 s = Roo::Excelx.new("Login.xlsx") i=0 j=1 s.each do |data| username = data[i] password = data[j] @driver.find_element(:id, "txtUserName").clear

如何在selenium for alert框中编写If-Else条件,这里我使用的是Ruby语言。 这是用于登录页面的。。输入错误的用户名、密码。。显示警报框并单击确定按钮。。 为此,我写了一封信

s = Roo::Excelx.new("Login.xlsx")
i=0
j=1
s.each do |data|
    username = data[i]
    password = data[j]
@driver.find_element(:id, "txtUserName").clear
@driver.find_element(:id, "txtUserName").send_keys (username)
@driver.find_element(:id, "txtPassword").clear
@driver.find_element(:id, "txtPassword").send_keys (password)
@driver.find_element(:id, "btnLogin").click
if @driver.find_element(:xpath => "//div[9]/div/button").displayed?
    @driver.find_element(:xpath, "//div[9]/div/button").click
else @driver.find_element(:id, "lblWelcomeName").click
  @driver.find_element(:id, "lnkLogout").click
end
结束

当第二次启动循环时,脚本停止显示如下错误消息

 21:        s = Roo::Excelx.new("Login.xlsx")
 22:        i=0
 23:        j=1
 24:        s.each do |data|
 25:                username = data[i]
 26:                password = data[j]

你能帮我解决这个问题吗?

首先,如果你在Ruby上使用Selenium,我强烈建议你改用Selenium。它在引擎盖下使用Selenium,只是它非常简单,而且您可以使用它生成可理解的代码。它有一个非常简单的方法来处理警报框。对于大多数警报框,您希望查看它们是否存在,如果存在,请单击它或输入文本并单击警报。使用Watir Webdriver很容易做到这一点:

# Check if alert is shown
browser.alert.exists?

# Get text of alert
browser.alert.text

# Close alert
browser.alert.ok
browser.alert.close
JAVASCRIPT CONFIRMS
# Accept confirm
browser.alert.ok

# Cancel confirm
browser.alert.close


JAVASCRIPT PROMPT
# Enter text to prompt
browser.alert.set "Prompt answer"

# Accept prompt
browser.alert.ok



# Cancel prompt
browser.alert.close
Alternative Method

您也可以在警报上做出有条件的if-then-else语句,但这非常不方便。

您觉得我的答案有用吗?