Операции с фреймом Проблемы с локатором xPath у веб-ботов - PullRequest
0 голосов
/ 10 октября 2019

Я пробовал iFrame после прохождения главы iFrame, но у меня возникает ошибка при поиске элементов после переключения на нужный кадр. XPath, который я пытаюсь скопировать, копируется из инспектора, но все равно не работает.

URL: пример веб-сайта, на котором есть фрейм бота

https://www.sbimf.com/en-us

Я могу нажать на значок бота и активировать фрейм. Использовал приведенную ниже логику, чтобы получить все фреймы на странице.

WebElement bot = driver.findElement(By.className("avaamo__icon"));
Actions action = new Actions(driver);
action.click(bot).perform();
List<WebElement> frames = driver.findElements(By.tagName("iframe"));
System.out.println("Frame Size: "+ frames.size());              
for(WebElement frame:frames){
    System.out.println(frame.getAttribute("name"));
}

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

driver.switchTo().frame(1);
//OR
driver.swithTo().frame(avaamoIframe)

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

driver.findElement(By.xpath("/html/body/div[2]/form/div/div[3]/div[2]/textarea")).sendKeys("Hello");
driver.findElement(By.xpath("/html/body/div[2]/form/div/div[2]/div/a[2]")).click();
driver.findElement(By.cssSelector("[title*='Show me fund details']")).click();
driver.findElement(By.xpath("\"//a[contains(text(),'View Fund Details')]\"")).click();
...