Я автоматизирую веб-приложение в браузере Safari и не могу щелкнуть элемент, присутствующий в iframe.Тот же код работает на Chrome и Firefox.
Я пробовал разные методы, такие как click
, javascript
, но, похоже, ничего не работает.Кроме того, сообщение об ошибке не отображается для этих методов.Они выполняются успешно, и на экране ничего не происходит.Я также пытался нажимать на разные элементы в иерархии, но не повезло.
Ниже приведены версии, которые я использую для этой задачи:
ruby 2.6.0p0
selenium-webdriver: 3.142.3
Safari: 12.1.1
хромедрайвер: 74.0.3729.6
geckodriver: v0.24.0
require 'selenium-webdriver'
@browser = Selenium::WebDriver.for :safari
@browser.get 'https://www.splashmath.com/math-skills/first-grade/addition/add-using-pictures-within-10?from_page=Home'
@browser.find_element(xpath: "//a[@title='Practice Add using Pictures within 10 Worksheet']").click
wait = Selenium::WebDriver::Wait.new(timeout: 20)
wait.until { @browser.find_element(id: 'sp-iframe') }
@browser.switch_to.frame('sp-iframe')
wait.until { @browser.find_element(xpath: "//div[@class='btn-choice pt-choice index-0']").displayed? }
sleep 5
# This is where nothing is happening:
@browser.find_element(xpath: "//div[@class='btn-choice pt-choice index-0']").click
Я также пробовал ниже код:
x = @browser.find_element(xpath: "//div[@class='btn-choice pt-choice index-0']")
@browser.execute_script("arguments[0].click();", x) #=> Nothing happens
# This throws Selenium::WebDriver::Error::MoveTargetOutOfBoundsError
x = @browser.find_element(xpath: "//div[@class='btn-choice pt-choice index-0']")
@browser.action.move_to(x).click.perform
HTML: