paw*_*lty 2 python web-scraping python-3.x selenium-webdriver
我正在尝试抓取这个网站http://bombayhighcourt.nic.in/party_query.php。一切顺利,直到我第一次抓取结果并返回此页面。然后出现以下警报:
我可以看到负责警报的代码是这样的:
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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用此代码在此警报中单击“确定”,但它没有执行任何操作:
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")
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
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)
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
这一行有错误
alert = s.mydriver.switch_to.alert()
Run Code Online (Sandbox Code Playgroud)
它应该看起来像
alert = s.mydriver.switch_to.alert
Run Code Online (Sandbox Code Playgroud)
或者
alert = s.mydriver.switch_to_alert()
Run Code Online (Sandbox Code Playgroud)
你也做同样的动作两次(EC.alert_is_present()允许切换到警报以及driver.switch_to.alert)。你可以简单地使用
alert = WebDriverWait(s.mydriver, 3).until(EC.alert_is_present(),"Enter Party Name" )
alert.accept()
print("alert accepted")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3260 次 |
| 最近记录: |