Selenium Javascript не удается переключить кадр

#selenium

Вопрос:

Я пытаюсь создать скрипт на JavaScript, который включал бы переключение кадров на этом конкретном веб-сайте, но мне это не удалось. Я попытался найти индекс кадра, используя имя (для кадра нет идентификатора), используя xpath, как явный, так и неявный, но безуспешно. Он также продолжает говорить мне, что идентификатор кадра не может быть строкой, что довольно странно, так как обычно это работает.

Та же команда для поиска одного и того же кадра на одном и том же веб-сайте хорошо работает в 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");
 

Ответ №1:

Вы должны объявить веб-элемент в switchTo().frame методе. Если вы попытаетесь определить веб-элемент заранее, скорее всего, в конечном итоге вы не получите исключения из такого элемента.

 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");
 

Комментарии:

1. Я только что попробовал этот метод, но он просто говорит, что идентификатор не может быть строкой. Я получаю эту ошибку InvalidArgumentError: недопустимый аргумент: «идентификатор» не может быть строкой

2. Могу ли я получить полную трассировку стека ошибок ?