Javascript 无法通过java selenium在safari浏览器的iframe(即跨域)的输入框中输入凭据

Javascript 无法通过java selenium在safari浏览器的iframe(即跨域)的输入框中输入凭据,javascript,java,selenium-webdriver,safaridriver,Javascript,Java,Selenium Webdriver,Safaridriver,作为测试场景的一部分,有一个3Dsecure窗口,我需要在其中输入用户名、密码并单击submit按钮 这适用于带有java和selenium webdriver的chrome浏览器 driver.switchTo().frame(By.id("ThreeDSecureIframe"); Then I type the user credentials and click submit button 但是,在safari中运行测试时,它无法识别iframe中的用户名和密码输入框。是否有javas

作为测试场景的一部分,有一个3Dsecure窗口,我需要在其中输入用户名、密码并单击submit按钮

这适用于带有java和selenium webdriver的chrome浏览器

driver.switchTo().frame(By.id("ThreeDSecureIframe");
Then I type the user credentials and click submit button
但是,在safari中运行测试时,它无法识别iframe中的用户名和密码输入框。是否有javascript等解决方法

父和iframe都位于不同的域中。(即父url:-和iframe url:-) 如果您将iframe的src中提到的相对url附加到父url,那么它将重定向到
adyen.com
。您可以在此处输入用户凭据,但一旦单击“提交”,您将错过transactionId,因此您将无法返回到父url)


在控制台中尝试使用javascript时,它抱怨跨域安全性

iOS safari作为应用程序错误:发生未知的服务器端错误 在处理命令时。原始错误:执行时出错 atom:SecurityError(DOM异常18):阻止了具有原点的帧 “test.abc.com”访问源代码为“test.xyz.com”的帧。 协议、域和端口必须匹配


对此问题的任何回答,请添加显示凭据输入和异常输出的代码。@pburgr用您要求的必要详细信息更新了描述您在控制台中尝试时提到了错误。当尝试使用Selenium代码时,会出现什么错误?如果我使用Selenium内置方法,如switchTo和sendKeys作为用户名和密码,那么它不会识别元素“等待”的存在。然而,如果我使用javascript,那么它会给出跨域的DOM异常。
<iframe id="ThreeDSecureIframe" src="/threedsecure/TriggerPostTo3Ds?clientPaymentTransactionId=7123456-">
  <input type="text" id="username">