我正在尝试为SAP-webUI(基于Web)应用程序编写一些UI测试用例。登录后,它会显示仪表板(工作中心)屏幕。
现在的问题是,我可以打开页面,输入U / N,Pwd并通过Selenium登录。按“登录”按钮后,URL会更改,页面会被重定向/刷新。
E.g。登录前的网址:https://a/b/c/d/e/f/g.htm?sap-client=001&sap-sessioncmd=open
E.g。成功登录后的网址:https://a/b(bDsdfsdsf1lg==)/c/d/e/f/g.htm
此后我无法执行任何操作或按下页面任何部分的任何链接。我尝试了所有可能的属性(css,xpath,id)。 Webdriver无法在页面上找到任何元素。它单独显示错误“找不到元素”。
我正在使用带有Selenium Web Driver的java。
请找到以下网页的html结构
<html><body><div><div><iframe>#document<html><head></head><frameset><frameset><frame>#document<html><head></head><body><form><div><div><table><tbody><tr><td><div><ul><li><a id=abcdef></a></li></ul></div></td></tr></tbody></table></div></div></form></body></html></frame></frameset></frameset></html></iframe></div></div></body></html>
其实我想点击一个链接菜单“abcd”,它位于iframe和frame里面,如下面的HTML代码所示
<html><head></head><body><iframe name=a1><html><head></head><frameset><frameset name=fs1><frame name=f1><html><head></head><body><table><tbody><tr><td><ul><li><a id=abcdef>
我也尝试了以下代码。
driver.switchTo().frame("a1");
driver.findElement(By.id("abcd")).click();
OR
driver.findElement(By.xpath("//*[@id='abcd']")).click();
使用上面的代码后,我仍然得到错误“没有这样的元素”
请建议
此致 希瓦
答案 0 :(得分:3)
这样做......
。driver.switchTo()帧(driver.findElement(By.xpath( “// IFRAME [@名称= 'A1']”))); //切换到iframe
接着是
driver.switchTo()帧( “F1”)。 //切换到框架
然后你想要的行动......
driver.findElement(By.id( “ABCD”))点击();
答案 1 :(得分:1)
由于iframe
,这是。您需要先切换到:
driver.switchTo().frame(0);
driver.findElement(By.id("abcdef")).click();
其中0
是帧索引。
答案 2 :(得分:0)
请参阅有关隐式等待here
的文档我猜你应该做一个隐含的等待,直到你选择的元素可用
修改这些代码以适合您选择的元素:
WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.id("someid")));