.click не работает для элемента, расположенного внутри iframe в браузере Safari - PullRequest
1 голос
/ 24 мая 2019

Я автоматизирую веб-приложение в браузере 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:

enter image description here

...