Добавить зависимость только времени компиляции в sbt

Это общий код, адаптированный из других примеров:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.get("http://www.google.com/")

#open tab
# ... take the code from the options below

# Load a page 
driver.get('http://bings.com')
# Make the tests...

# close the tab
driver.quit()

возможными способами были:

  1. Отправка + на один элемент
    #open tab
    driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't')
    
  2. Отправка + через цепочки действий
    ActionChains(driver).key_down(Keys.CONTROL).send_keys('t').key_up(Keys.CONTROL).perform()
    
  3. Выполнение фрагмента javascript
    driver.execute_script('''window.open("http://bings.com","_blank");''')
    
    Для этого вам необходимо убедиться, что предпочтения browser.link.open_newwindow и browser.link.open_newwindow.restriction . Значения по умолчанию в последних версиях в порядке, иначе вам, возможно, понадобится:
    fp = webdriver.FirefoxProfile()
    fp.set_preference("browser.link.open_newwindow", 3)
    fp.set_preference("browser.link.open_newwindow.restriction", 2)
    
    driver = webdriver.Firefox(browser_profile=fp)
    
    проблема в том, что эти настройки заданы другими значениями и заморожены, по крайней мере, селеном 3.4.0. Когда вы используете профиль, чтобы установить их с привязкой java, появляется исключение и с привязкой python новые значения игнорируются. В Java есть способ установить эти настройки без указания объекта профиля при разговоре с geckodriver, но он пока еще не реализован в привязке python:
    FirefoxOptions options = new FirefoxOptions().setProfile(fp);
    options.addPreference("browser.link.open_newwindow", 3);
    options.addPreference("browser.link.open_newwindow.restriction", 2);
    FirefoxDriver driver = new FirefoxDriver(options);
    

Третий вариант перестала работать для python в селене 3.4.0.

Первые два параметра также показались прекратить работу в селене 3.4.0. Они зависят от отправки ключевого события CTRL в элемент. На первый взгляд кажется, что это проблема ключа CTRL, но он терпит неудачу из-за новой функции многопроцесса Firefox . Может быть, эта новая архитектура навязывает новые способы сделать это или, может быть, является временной проблемой реализации. В любом случае мы можем отключить его с помощью:

fp = webdriver.FirefoxProfile()
fp.set_preference("browser.tabs.remote.autostart", False)
fp.set_preference("browser.tabs.remote.autostart.1", False)
fp.set_preference("browser.tabs.remote.autostart.2", False)

driver = webdriver.Firefox(browser_profile=fp)

... а затем вы можете успешно использовать первый способ.

18
задан 0__ 2 February 2014 в 19:46
поделиться