Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Комбинация клавиш при помощи ActionChains отрабатывает лишь раз

selenium
Теги: #<Tag:0x00007f7b6d6d8180>

(Игорь Владимиров) #1

Привет, весь день бьюсь над одной проблемой которую не знаю как решить. В моем коде ниже, я вызываю одно действие ввиде нажатия комбинации клавиш 2 раза, но почему-то отрабатывается действие, что было вызвано первым. Я делал слипы, менял вторую комбинацю на другую, но все без толку, может кто-то сталкивался с подобной ситуацией?

Использую ChromeDriver 2.30 и Selenium 3.4.2

def test_on_off_automess(app):

fixture_for_the_test(app)
driver = app.driver

email = app.method.email_generator()
email, room_id = app.method.create_room(product, email=email)
app.method.click_on(l.refresh)
app.method.click_on(l.list_box_general_target_room % email)
app.method.wait_on(l.list_box_joined_target_room % email)

app.method.post_message(room_id, 'rv')
ActionChains(driver).send_keys(Keys.CONTROL + Keys.SHIFT + "f").perform()
time.sleep(5)
assert driver.find_element_by_xpath(l.last_message).text.endswith("it doesn't matter")

ActionChains(driver).send_keys(Keys.CONTROL + Keys.SHIFT + "f").perform()
app.method.post_message(room_id, 'rv')
time.sleep(5)
assert not driver.find_element_by_xpath(l.last_message).text.endswith("it doesn't matter here" or "again")
app.method.close_room()

(Dmytro Serdiuk) #2

Try to send keys combination like described on http://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.common.action_chains:

# Example, pressing ctrl+c:
ActionChains(driver).key_down(Keys.CONTROL).send_keys('c').key_up(Keys.CONTROL).perform()

(Игорь Владимиров) #3

Now it works perfectly, thanks you helped me so freaking a lot! =D