
[英]Extracting JavaScript function return value using Python Selenium
[英]Pass value to a javascript function using Selenium in python
login.php
在提交时调用以下函数
<script type="text/javascript">
function validate(){
var res=confirm("Are you sure");
if(res)
return true;
else
return false;
}
</script>
我正在尝试使用Selenium通过python脚本登录。 当我单击登录时,将调用以下脚本,并且需要选择“是”进行登录。
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())
我对我尝试做的事情还比较陌生。.如果有更好的实践,建议会很受欢迎。
单击提交后弹出窗口,我们称它们为JS警报/确认,它们由JavaScript触发并由浏览器本地支持。 对于这样的弹出窗口,硒已经实现了与之交互的代码。 因此,只需在所使用的版本上从Selenium python客户端API中找到方法即可。 (在不同的客户端API版本中,方法名称和调用方式可能不同)。
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()
使用以下代码:
browser = webdriver.Firefox()
browser.get("http://username:password@webpage/login.php")
您将可以绕过此身份验证警报。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.