Javascript 在selenium中发送文本警报
如何处理包含用户名和密码等文本字段的JavaScript警报?如何在这些字段中输入值 您可以尝试以下方法:Javascript 在selenium中发送文本警报,javascript,selenium,Javascript,Selenium,如何处理包含用户名和密码等文本字段的JavaScript警报?如何在这些字段中输入值 您可以尝试以下方法: driver.switch_to.alert.authenticate('cheese', 'secretGouda') 您可以在控制台上或从该窗口查看文档 >>>从selenium.webdriver.common.alert导入警报 >>>帮助(警报。身份验证) 有关模块selenium.webdriver.common.alert中的方法身份验证的帮助: 身份验证(自我、用户名、密
driver.switch_to.alert.authenticate('cheese', 'secretGouda')
您可以在控制台上或从该窗口查看文档
>>>从selenium.webdriver.common.alert导入警报
>>>帮助(警报。身份验证)
有关模块selenium.webdriver.common.alert中的方法身份验证的帮助:
身份验证(自我、用户名、密码)未绑定selenium.webdriver.common.alert.alert方法
将用户名/密码发送到经过身份验证的对话框(与基本HTTP身份验证类似)。
隐式“单击确定”
用法::
driver.switch_to.alert.authenticate('cheese','secretGouda'))
:Args:
-用户名:在对话框的用户名部分设置的字符串
-密码:在对话框的密码部分设置的字符串
您可以尝试以下方法:
driver.switch_to.alert.authenticate('cheese', 'secretGouda')
您可以在控制台上或从该窗口查看文档
>>>从selenium.webdriver.common.alert导入警报
>>>帮助(警报。身份验证)
有关模块selenium.webdriver.common.alert中的方法身份验证的帮助:
身份验证(自我、用户名、密码)未绑定selenium.webdriver.common.alert.alert方法
将用户名/密码发送到经过身份验证的对话框(与基本HTTP身份验证类似)。
隐式“单击确定”
用法::
driver.switch_to.alert.authenticate('cheese','secretGouda'))
:Args:
-用户名:在对话框的用户名部分设置的字符串
-密码:在对话框的密码部分设置的字符串
问题是Selenium无法识别身份验证弹出窗口。据我所知,这是硒的限制。使用java Robot操作填写用户名和密码可以克服这个问题
public void handlePopup(){
//create java robot for keyboard simulations
Robot rb = new Robot();
//First set the username value to the system clipboard
StringSelection username = new StringSelection("your-user-name");
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(username, null);
// Perform a control+v to paste the content into username field.
rb.keyPress(KeyEvent.VK_CONTROL);
rb.keyPress(KeyEvent.VK_V);
rb.keyRelease(KeyEvent.VK_V);
rb.keyRelease(KeyEvent.VK_CONTROL);
//tab to navigate to password field
rb.keyPress(KeyEvent.VK_TAB);
rb.keyRelease(KeyEvent.VK_TAB);
Thread.sleep(2000);
//set the password value to the system clipboard
StringSelection pwd = new StringSelection("your-password");
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(pwd, null);
// Perform a control+v to paste the content into password field.
rb.keyPress(KeyEvent.VK_CONTROL);
rb.keyPress(KeyEvent.VK_V);
rb.keyRelease(KeyEvent.VK_V);
rb.keyRelease(KeyEvent.VK_CONTROL);
//press enter to login
rb.keyPress(KeyEvent.VK_ENTER);
rb.keyRelease(KeyEvent.VK_ENTER);
}
问题是Selenium无法识别身份验证弹出窗口。据我所知,这是硒的限制。使用java Robot操作填写用户名和密码可以克服这个问题
public void handlePopup(){
//create java robot for keyboard simulations
Robot rb = new Robot();
//First set the username value to the system clipboard
StringSelection username = new StringSelection("your-user-name");
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(username, null);
// Perform a control+v to paste the content into username field.
rb.keyPress(KeyEvent.VK_CONTROL);
rb.keyPress(KeyEvent.VK_V);
rb.keyRelease(KeyEvent.VK_V);
rb.keyRelease(KeyEvent.VK_CONTROL);
//tab to navigate to password field
rb.keyPress(KeyEvent.VK_TAB);
rb.keyRelease(KeyEvent.VK_TAB);
Thread.sleep(2000);
//set the password value to the system clipboard
StringSelection pwd = new StringSelection("your-password");
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(pwd, null);
// Perform a control+v to paste the content into password field.
rb.keyPress(KeyEvent.VK_CONTROL);
rb.keyPress(KeyEvent.VK_V);
rb.keyRelease(KeyEvent.VK_V);
rb.keyRelease(KeyEvent.VK_CONTROL);
//press enter to login
rb.keyPress(KeyEvent.VK_ENTER);
rb.keyRelease(KeyEvent.VK_ENTER);
}
已尝试
驱动程序。请切换到\u窗口()
?可能会有帮助。我已更新了答案。请看一看。尝试了驱动程序。切换到\u window()
?可能会有帮助。我已经更新了答案。看一看。看一看这个。是的,我知道认证方法。但该方法仍然被标记为@Beta。根据我的经验,这种方法在大多数情况下都不能解决问题。我发布的是我们在10多个自动化项目中解决这个问题的方法。看看这个。是的,我知道认证方法。但该方法仍然被标记为@Beta。根据我的经验,这种方法在大多数情况下都不能解决问题。我发布的是我们在10多个自动化项目中解决这个问题的方法。