【问题标题】:Selenium Javascript unable to switch frameSelenium Javascript 无法切换帧
【发布时间】:2021-10-17 21:51:17
【问题描述】:

我正在尝试用 JavaScript 编写一个脚本,该脚本将涉及在此特定网站上切换框架,但我一直无法这样做。我尝试使用名称(框架没有id),使用xpath,显式和隐式等待来查找框架的索引,但没有成功。它还一直告诉我一个框架的 id 不能是一个字符串,这很奇怪,因为通常它会起作用。

在同一网站上查找相同框架的相同命令在 Python 中运行良好,但在 JS 中运行良好。有谁能帮帮我吗?

driver.switchTo().frame('mainFrame');
driver.switchTo().defaultContent();
const leftframe = driver.findElement(By.name ("leftFrame"));
driver.switchTo().frame(leftframe);
driver.findElement(By.xpath("/html/body/table/tbody/tr/td/table/tbody/tr[11]/td[3]/a")).click();
driver.switchTo().frame("mainFrame");

【问题讨论】:

    标签: selenium


    【解决方案1】:

    您应该在switchTo().frame 方法中声明网络元素。如果您尝试预先定义 Web 元素,很可能您最终不会遇到此类元素异常。

    driver.switchTo().frame('mainFrame');
    driver.switchTo().defaultContent();
    driver.switchTo().frame(driver.findElement(By.name("leftFrame")));
    driver.findElement(By.xpath("/html/body/table/tbody/tr/td/table/tbody/tr[11]/td[3]/a")).click();
    driver.switchTo().frame("mainFrame");
    

    【讨论】:

    • 我刚刚试过那个方法,但它只是说id不能是字符串。我收到此错误 InvalidArgumentError: invalid argument: 'id' can not be string
    • 我可以有完整的错误堆栈跟踪吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-29
    • 1970-01-01
    • 2021-06-19
    • 1970-01-01
    相关资源
    最近更新 更多