我正在尝试编写C#Selenium脚本来更改以下项目的大小:http://automationpractice.com/index.php
即使尝试先切换到框架,我也无法定位iframe弹出窗口中的任何内容。
要显示iframe,我使用以下方法单击了项目1的快速视图:
var element =
driver.FindElement(By.XPath("//*[@id=\"homefeatured\"]/li[1]/div/div[1]/div/a[1]/img"));
Actions actions = new Actions(driver);
actions.MoveToElement(element);
actions.Click();
actions.Perform();
然后显示了iframe窗口,但是即使尝试使用以下命令切换到该窗口,我也无法在其中找到任何内容:
第3帧是Firefox选择的内容。
driver.SwitchTo().Frame(3);
选择默认值,然后选择其他帧。
driver.SwitchTo().DefaultContent();
尝试使用框架名称
driver.SwitchTo().Frame("fancybox-margin fancybox-lock");
尝试框架ID的0、1、2、3
它永远找不到XPath,ID,Name或其他任何元素。我正在尝试缩小尺寸以进行更改。
即使我尝试了许多其他更高级别的操作,我仍在寻找的XPath是
//*[@id="group_1"]
任何帮助都非常感激我被困扰了这么长时间。
答案 0 :(得分:0)
使用此按钮进行切换,它将起作用,Id末尾由一些数字组成,并且还在不断变化。
driver.SwitchTo().Frame(By.Xpath("//iframe[starts-with(@id,'fancybox-frame')]"));
答案 1 :(得分:0)
最终设法解决了该问题,又有一个iframe停在了下一个位置,因此它失败了,因为它定位到iframe 3后以iframe 1或2为目标。在iframe完成加载之前。