login.php
在提交时调用以下函数
<script type="text/javascript">
function validate(){
var res=confirm("Are you sure");
if(res)
return true;
else
return false;
}
</script>
我正在尝试使用Selenium登录python脚本。当我点击登录时,会调用以下脚本,我需要选择“是”&#39;登录。
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
browser = webdriver.Firefox()
browser.get("webpage/login.php")
username = browser.find_element_by_id("id")
password = browser.find_element_by_id("pass")
username.send_keys("username")
password.send_keys("password")
login_attempt = browser.find_element_by_xpath("//*[@type='submit']")
login_attempt.submit()
#I want to send yes to the `validate` function and the
#then then again do browser.get("webpage/home.php") to scrape info from a html tag
#print(login_attempt.submit())
我对我要做的事情比较新。如果有更好的做法,建议很受欢迎。
答案 0 :(得分:1)
弹出窗口在点击提交后出现,我们称之为JS警报/确认,它们由JavaScript触发并由浏览器本地支持。对于这样的弹出窗口,selenium已经实现了与它们交互的代码。因此,只需在您使用的版本上找到selenium python客户端API中的methond。 (在不同的客户端API版本中,methond名称和如何调用可能不相同)。
alert = browser.switch_to_alert()
//accept the alert
alert.accept()
// maybe as below to call
alert = driver.switch_to.alert
alert.accept()
// or
Alert(driver).accept()
答案 1 :(得分:0)
使用以下代码:
browser = webdriver.Firefox()
browser.get("http://username:password@webpage/login.php")
您将能够绕过此身份验证警报。