如何在SeleniumWebDriver的ruby警报框中写入If-else条件
如何在selenium for alert框中编写If-Else条件,这里我使用的是Ruby语言。 这是用于登录页面的。。输入错误的用户名、密码。。显示警报框并单击确定按钮。。 为此,我写了一封信如何在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
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语句,但这非常不方便。您觉得我的答案有用吗?