Я автоматизирую программное обеспечение с помощью Selenium, и внутри фрейма находится веб-элемент, на который нужно нажать.
Я пробовал следующие способы. с помощью класса expectedCondtion. с помощью thread.sleep(). с помощью простого метода click() из Selenium. с помощью javascriptExecutor.
Но это не работает.
есть ли другой способ решения?
решение1
Прежде всего вам нужновыключателькфреймгде находится элемент, если вы этого не сделаете - Selenium не сможет найти элемент, например
driver.switchTo().frame("your frame name or ID");
Во-вторых, вам нужно убедиться, что вы используете правильныйстратегия расположенияи убедитесь, что локатор правильный. Обратите внимание на сообщения об ошибках / журналы, так как может быть, что щелчок перехвачен другим элементом (родительским, или всплывающим окном cookie или чем-то еще)
В-третьих, рассмотрите возможность использованияWebDriverWaitкласс для реализацииЯвное ожиданиетак как это может быть в случае, если элемент загружаетсяасинхроннои не сразу доступны
WebDriverWait wait = new WebDriverWait(driver,10); wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//your/element/xpath/query"))).click();
Использованная литература: