为了账号安全,请及时绑定邮箱和手机立即绑定

无法在 iFrame 中找到单选按钮

无法在 iFrame 中找到单选按钮

守着星空守着你 2022-09-14 17:14:44
尝试在iFrame中查找单选按钮,但出现错误,因为找不到此类元素。已尝试切换到iFrame,但仍收到相同的错误。不知道我错过了什么。尝试了几种方法,但没有通过。不确定我的Xpath是否错误,或者我使用id来定位元素的方式是错误的。[在开发人员工具中验证了我的Xpath,但仍然收到相同的错误,即找不到suh元素]提前感谢您。public class Sap_Demo {    WebDriver driver;    JavascriptExecutor jse;    public static void main(String[] args)     {        Sap_Demo demoObj = new Sap_Demo();        demoObj.invokeBrowser();        demoObj.initializeSAPFiory();        demoObj.forecastMD61();    }    public void invokeBrowser()    {        System.setProperty("webdriver.chrome.driver", "U:\\Research Paper\\Selenium\\Drivers\\Chrome\\chromedriver_win32\\chromedriver.exe");        driver = new ChromeDriver();        driver.manage().deleteAllCookies();        driver.manage().window().maximize();        driver.manage().timeouts().implicitlyWait(40, TimeUnit.SECONDS);        driver.manage().timeouts().pageLoadTimeout(40, TimeUnit.SECONDS);    }    public void initializeSAPFiory()    {        try         {            Thread.sleep(1200);            driver.get("https://dijon.cob.csuchico.edu:8042/erp");            driver.findElement(By.id("USERNAME_FIELD-inner")).sendKeys("H4");            Thread.sleep(1200);            driver.findElement(By.id("PASSWORD_FIELD-inner")).sendKeys("Onsjhjsa1087");            Thread.sleep(1200);            driver.findElement(By.id("CLIENT_FIELD-inner")).clear();            Thread.sleep(1200);            driver.findElement(By.id("CLIENT_FIELD-inner")).sendKeys("485");            Thread.sleep(1200);            driver.findElement(By.xpath("//span[@class='sapMBtnContent sapMLabelBold sapUiSraDisplayBeforeLogin']")).click();        }         catch (InterruptedException e)         {            // TODO Auto-generated catch block            e.printStackTrace();        }    }}
查看完整描述

1 回答

?
繁星淼淼

TA贡献1775条经验 获得超11个赞

元素的第一个 xpath 和 iframe 的 id 是正确的,但是当窗口在新选项卡中打开时,
您需要将驱动程序切换到新选项卡。
driver.switchTo().defaultContent();

ArrayList<String> tabs = new ArrayList<String> (driver.getWindowHandles());
driver.switchTo().window(tabs.get(1));

如果要切换到原始选项卡,则需要使用:

driver.switchTo().window(tabs.get(0));


查看完整回答
反对 回复 2022-09-14
  • 1 回答
  • 0 关注
  • 112 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信