Selenium Webdriver单击警报 [英] Selenium webdriver click alert
本文介绍了Selenium Webdriver单击警报的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试抓取此网站
I am trying to scrape this website
我看到负责警报的代码是这样的:
I can see that the code responsible for the alert is this:
function validate()
{
with(document.pqueryfrm)
{
if(trim(m_party.value)=="")
{
alert("Enter Party Name");
m_party.focus();
return false;
}
if(m_party.value=="")
{
alert("Enter Party Name");
m_party.focus();
return false;
}
}
}
我正在尝试使用此代码在此警报中单击确定",但它没有执行任何操作:
I am trying to click OK in this alert with this code but it doesn't do anything:
try:
WebDriverWait(s.mydriver, 3).until(EC.alert_is_present(),"Enter Party Name" )
alert = s.mydriver.switch_to.alert()
alert.accept()
print("alert accepted")
except TimeoutException:
print ("no alert")
我收到以下错误消息:
UnexpectedAlertPresentException: Alert Text: None
Message: unexpected alert open: {Alert text : Enter Party Name}
(Session info: chrome=55.0.2883.87)
(Driver info: chromedriver=2.26.436362 (5476ec6bf7ccbada1734a0cdec7d570bb042aa30),platform=Windows NT 6.1.7601 SP1 x86_64)
我在做什么错了?
推荐答案
此行有错误
alert = s.mydriver.switch_to.alert()
应该看起来像
alert = s.mydriver.switch_to.alert
或
alert = s.mydriver.switch_to_alert()
您还要执行两次相同的操作(EC.alert_is_present()
和driver.switch_to.alert
都可以切换为警报).您可以简单地使用
Also you make same actions twice (EC.alert_is_present()
allow to switch to alert as well as driver.switch_to.alert
). You can simply use
alert = WebDriverWait(s.mydriver, 3).until(EC.alert_is_present(),"Enter Party Name" )
alert.accept()
print("alert accepted")
这篇关于Selenium Webdriver单击警报的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文