本文整理汇总了Python中selenium.webdriver.common.action_chains.ActionChains.drag_and_drop方法的典型用法代码示例。如果您正苦于以下问题:Python ActionChains.drag_and_drop方法的具体用法?Python ActionChains.drag_and_drop怎么用?Python ActionChains.drag_and_drop使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类selenium.webdriver.common.action_chains.ActionChains
的用法示例。
在下文中一共展示了ActionChains.drag_and_drop方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _drag_page_el_2_thing
# 需要导入模块: from selenium.webdriver.common.action_chains import ActionChains [as 别名]
# 或者: from selenium.webdriver.common.action_chains.ActionChains import drag_and_drop [as 别名]
def _drag_page_el_2_thing(step, element_name, pick, find_pattern):
src = get_visible_page_element(element_name)
target = _get_visible_element(finder_function, pick, find_pattern)
action_chain = ActionChains(world.browser.driver)
action_chain.drag_and_drop(src, target)
action_chain.perform()
示例2: _drag_page_el_2_page_el
# 需要导入模块: from selenium.webdriver.common.action_chains import ActionChains [as 别名]
# 或者: from selenium.webdriver.common.action_chains.ActionChains import drag_and_drop [as 别名]
def _drag_page_el_2_page_el(step, elemant_name_src, element_name_target):
src = get_visible_page_element(elemant_name_src)
target = get_visible_page_element(element_name_target)
action_chain = ActionChains(world.browser.driver)
action_chain.drag_and_drop(src, target)
action_chain.perform()
示例3: add_multiple_textbox_question_to_survey
# 需要导入模块: from selenium.webdriver.common.action_chains import ActionChains [as 别名]
# 或者: from selenium.webdriver.common.action_chains.ActionChains import drag_and_drop [as 别名]
def add_multiple_textbox_question_to_survey(self):
self.find_element(self._multiple_textbox_question_locator).click()
if self.is_multiple_textbox_question_add_displayed:
actions = ActionChains(self.selenium)
actions.click_and_hold(self.find_element(self._multiple_textbox_question_locator))
actions.drag_and_drop(self.find_element(self._multiple_textbox_question_locator),self.find_element(self._question_area_locator))
actions.perform()
示例4: add_single_textbox_question_to_survey
# 需要导入模块: from selenium.webdriver.common.action_chains import ActionChains [as 别名]
# 或者: from selenium.webdriver.common.action_chains.ActionChains import drag_and_drop [as 别名]
def add_single_textbox_question_to_survey(self):
#self.scroll_element_into_view(self._single_textbox_question_locator)
self.find_element(self._single_textbox_question_locator).click()
if self.is_single_textbox_question_add_displayed:
actions = ActionChains(self.selenium)
actions.click_and_hold(self.find_element(self._single_textbox_question_locator))
actions.drag_and_drop(self.find_element(self._single_textbox_question_locator),self.find_element(self._question_area_locator))
actions.perform()
示例5: drag_and_drop_to_object
# 需要导入模块: from selenium.webdriver.common.action_chains import ActionChains [as 别名]
# 或者: from selenium.webdriver.common.action_chains.ActionChains import drag_and_drop [as 别名]
def drag_and_drop_to_object(self, locatorOfObjectToBeDragged, locatorOfDragDestinationObject):
fromEl = self.driver.find_element(
self.getBy(locatorOfObjectToBeDragged), self.getValue(locatorOfObjectToBeDragged)
)
toEl = self.driver.find_element(
self.getBy(locatorOfDragDestinationObject), self.getValue(locatorOfDragDestinationObject)
)
actionChains = ActionChains(self.driver)
actionChains.drag_and_drop(fromEl, toEl).perform()
示例6: drag_source_to_target
# 需要导入模块: from selenium.webdriver.common.action_chains import ActionChains [as 别名]
# 或者: from selenium.webdriver.common.action_chains.ActionChains import drag_and_drop [as 别名]
def drag_source_to_target(self, source, target):
action = ActionChains(self.selenium)
#action.drag_and_drop(source, target)
custom_source = self.selenium.find_element(*self._loc_column_a)
print(custom_source.get_attribute("draggable"))
print(custom_source.get_attribute("id"))
custom_target = self.selenium.find_element(*self._loc_column_b)
print(custom_target.get_attribute("id"))
action.drag_and_drop(custom_source,custom_target)
action.perform()
示例7: _this_step
# 需要导入模块: from selenium.webdriver.common.action_chains import ActionChains [as 别名]
# 或者: from selenium.webdriver.common.action_chains.ActionChains import drag_and_drop [as 别名]
def _this_step(step, handler_pick, drag_handler_pattern, target_pick,
drag_target_pattern):
handler = _get_visible_element(finder_function_from, handler_pick,
drag_handler_pattern)
target = _get_visible_element(finder_function_to, target_pick,
drag_target_pattern)
action_chain = ActionChains(world.browser.driver)
action_chain.drag_and_drop(handler, target)
action_chain.perform()
示例8: drag_and_drop
# 需要导入模块: from selenium.webdriver.common.action_chains import ActionChains [as 别名]
# 或者: from selenium.webdriver.common.action_chains.ActionChains import drag_and_drop [as 别名]
def drag_and_drop(self, locator, target):
"""Drags element identified by ``locator`` into ``target`` element.
The ``locator`` argument is the locator of the dragged element
and the ``target`` is the locator of the target. See the
`Locating elements` section for details about the locator syntax.
Example:
| `Drag And Drop` | css:div#element | css:div.target |
"""
element = self.find_element(locator)
target = self.find_element(target)
action = ActionChains(self.driver)
action.drag_and_drop(element, target).perform()
示例9: drag_and_drop
# 需要导入模块: from selenium.webdriver.common.action_chains import ActionChains [as 别名]
# 或者: from selenium.webdriver.common.action_chains.ActionChains import drag_and_drop [as 别名]
def drag_and_drop(self, source, target):
"""Drags element identified with `source` which is a locator.
Element can be moved on top of another element with `target`
argument.
`target` is a locator of the element where the dragged object is
dropped.
Examples:
| Drag And Drop | elem1 | elem2 | # Move elem1 over elem2. |
"""
src_elem = self.find_element(source)
trg_elem = self.find_element(target)
action = ActionChains(self.browser)
action.drag_and_drop(src_elem, trg_elem).perform()
示例10: drag_element
# 需要导入模块: from selenium.webdriver.common.action_chains import ActionChains [as 别名]
# 或者: from selenium.webdriver.common.action_chains.ActionChains import drag_and_drop [as 别名]
def drag_element(self, from_element_selector, to_element_selector):
chain = ActionChains(self.webdriver)
chain.drag_and_drop(self._get_element(from_element_selector), self._get_element(to_element_selector))
chain.perform()
示例11: WebDriverElement
# 需要导入模块: from selenium.webdriver.common.action_chains import ActionChains [as 别名]
# 或者: from selenium.webdriver.common.action_chains.ActionChains import drag_and_drop [as 别名]
#.........这里部分代码省略.........
@property
def visible(self):
return self._element.is_displayed()
@property
def html(self):
return self['innerHTML']
@property
def outer_html(self):
return self['outerHTML']
def find_by_css(self, selector, original_find=None, original_query=None):
find_by = original_find or 'css'
query = original_query or selector
elements = self._element.find_elements_by_css_selector(selector)
return ElementList(
[self.__class__(element, self.parent) for element in elements], find_by=find_by, query=query)
def find_by_xpath(self, selector, original_find=None, original_query=None):
elements = ElementList(self._element.find_elements_by_xpath(selector))
return ElementList(
[self.__class__(element, self.parent) for element in elements], find_by='xpath', query=selector)
def find_by_name(self, name):
elements = ElementList(self._element.find_elements_by_name(name))
return ElementList(
[self.__class__(element, self.parent) for element in elements], find_by='name', query=name)
def find_by_tag(self, tag):
elements = ElementList(self._element.find_elements_by_tag_name(tag))
return ElementList(
[self.__class__(element, self.parent) for element in elements], find_by='tag', query=tag)
def find_by_value(self, value):
selector = '[value="%s"]' % value
return self.find_by_css(selector, original_find='value', original_query=value)
def find_by_text(self, text):
selector = '//*[text()="%s"]' % text
return self.find_by_xpath(selector, original_find='text', original_query=text)
def find_by_id(self, id):
elements = ElementList(self._element.find_elements_by_id(id))
return ElementList(
[self.__class__(element, self.parent) for element in elements], find_by='id', query=id)
def has_class(self, class_name):
return bool(re.search(r'(?:^|\s)' + re.escape(class_name) + r'(?:$|\s)', self['class']))
def mouse_over(self):
"""
Performs a mouse over the element.
Currently works only on Chrome driver.
"""
self.action_chains.move_to_element(self._element)
self.action_chains.perform()
def mouse_out(self):
"""
Performs a mouse out the element.
Currently works only on Chrome driver.
"""
self.action_chains.move_by_offset(5000, 5000)
self.action_chains.perform()
mouseover = warn_deprecated(mouse_over, 'mouseover')
def double_click(self):
"""
Performs a double click in the element.
Currently works only on Chrome driver.
"""
self.action_chains.double_click(self._element)
self.action_chains.perform()
def right_click(self):
"""
Performs a right click in the element.
Currently works only on Chrome driver.
"""
self.action_chains.context_click(self._element)
self.action_chains.perform()
def drag_and_drop(self, droppable):
"""
Performs drag a element to another elmenet.
Currently works only on Chrome driver.
"""
self.action_chains.drag_and_drop(self._element, droppable._element)
self.action_chains.perform()
def __getitem__(self, attr):
return self._element.get_attribute(attr)
示例12: ActionChains
# 需要导入模块: from selenium.webdriver.common.action_chains import ActionChains [as 别名]
# 或者: from selenium.webdriver.common.action_chains.ActionChains import drag_and_drop [as 别名]
__author__ = 'Donald'
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0
from selenium.webdriver.common.action_chains import ActionChains
import time
driver = webdriver.Firefox()
driver.get("http://www.w3schools.com/html/html5_draganddrop.asp")
element = driver.find_element_by_id("drag1")
target = driver.find_element_by_id("div2")
action_chains = ActionChains(driver)
time.sleep(15)
action_chains.drag_and_drop(element, target).perform()
time.sleep(15)
driver.close()
示例13: assign_role_by_drag
# 需要导入模块: from selenium.webdriver.common.action_chains import ActionChains [as 别名]
# 或者: from selenium.webdriver.common.action_chains.ActionChains import drag_and_drop [as 别名]
def assign_role_by_drag(self, role):
role_box_source = self.get_role_box(role)
assign_role_target = self.assign_role_draggable_target
actions = ActionChains(self.selenium)
actions.drag_and_drop(role_box_source, assign_role_target).perform()
示例14: WebDriverElement
# 需要导入模块: from selenium.webdriver.common.action_chains import ActionChains [as 别名]
# 或者: from selenium.webdriver.common.action_chains.ActionChains import drag_and_drop [as 别名]
#.........这里部分代码省略.........
def click(self):
self._element.click()
def check(self):
if not self.checked:
self._element.click()
def uncheck(self):
if self.checked:
self._element.click()
@property
def checked(self):
return self._element.is_selected()
selected = checked
@property
def visible(self):
return self._element.is_displayed()
def find_by_css(self, selector, original_find=None, original_query=None):
find_by = original_find or "css"
query = original_query or selector
elements = self._element.find_elements_by_css_selector(selector)
return ElementList([self.__class__(element, self.parent) for element in elements], find_by=find_by, query=query)
def find_by_xpath(self, selector):
elements = ElementList(self._element.find_elements_by_xpath(selector))
return ElementList(
[self.__class__(element, self.parent) for element in elements], find_by="xpath", query=selector
)
def find_by_name(self, name):
elements = ElementList(self._element.find_elements_by_name(name))
return ElementList([self.__class__(element, self.parent) for element in elements], find_by="name", query=name)
def find_by_tag(self, tag):
elements = ElementList(self._element.find_elements_by_tag_name(tag))
return ElementList([self.__class__(element, self.parent) for element in elements], find_by="tag", query=tag)
def find_by_value(self, value):
selector = '[value="%s"]' % value
return self.find_by_css(selector, original_find="value", original_query=value)
def find_by_id(self, id):
elements = ElementList(self._element.find_elements_by_id(id))
return ElementList([self.__class__(element, self.parent) for element in elements], find_by="id", query=id)
def mouse_over(self):
"""
Performs a mouse over the element.
Currently works only on Chrome driver.
"""
self.action_chains.move_to_element(self._element)
self.action_chains.perform()
def mouse_out(self):
"""
Performs a mouse out the element.
Currently works only on Chrome driver.
"""
self.action_chains.move_by_offset(5000, 5000)
self.action_chains.perform()
mouseover = warn_deprecated(mouse_over, "mouseover")
mouseout = warn_deprecated(mouse_out, "mouseout")
def double_click(self):
"""
Performs a double click in the element.
Currently works only on Chrome driver.
"""
self.action_chains.double_click(self._element)
self.action_chains.perform()
def right_click(self):
"""
Performs a right click in the element.
Currently works only on Chrome driver.
"""
self.action_chains.context_click(self._element)
self.action_chains.perform()
def drag_and_drop(self, droppable):
"""
Performs drag a element to another elmenet.
Currently works only on Chrome driver.
"""
self.action_chains.drag_and_drop(self._element, droppable._element)
self.action_chains.perform()
def __getitem__(self, attr):
return self._element.get_attribute(attr)
示例15: test_create_and_delete_quiz
# 需要导入模块: from selenium.webdriver.common.action_chains import ActionChains [as 别名]
# 或者: from selenium.webdriver.common.action_chains.ActionChains import drag_and_drop [as 别名]
def test_create_and_delete_quiz(self):
"""
tests the create quiz functionality
:return:
"""
"""
Part 1.
Create Quiz
"""
User.objects.create_user(username='[email protected]', email='[email protected]', password='password')
mock_user_model.save()
self.driver.get('{0}{1}'.format(self.live_server_url, '/'))
self.driver.find_element_by_name("username").send_keys('[email protected]')
self.driver.find_element_by_name("password").send_keys('password')
self.driver.find_element_by_id('login_form').submit()
self.driver.find_element_by_id("sidebar_parent_quiz").click()
# Wait for drop down to populate
WebDriverWait(driver=self.driver, timeout=5).until(
expected_conditions.visibility_of_element_located((By.ID, "sidebar_quiz_init"))
)
self.driver.find_element_by_id("sidebar_quiz_init").click()
self.driver.find_element_by_name("quiz_name").send_keys("mock_quiz")
self.driver.find_element_by_name("quiz_description").send_keys("mock_description")
self.driver.find_element_by_id("quiz_init_form").submit()
# Drag and Drop
action = ActionChains(self.driver)
draggable_radio_group = self.driver.find_element_by_class_name("icon-radio-group")
dragging_destination_box = self.driver.find_element_by_class_name("ui-sortable")
action.drag_and_drop(draggable_radio_group, dragging_destination_box)
action.move_to_element(self.driver.find_element_by_id("frmb-0-stage-wrap"))
action.perform()
# Edit properties of the element
# Wait for javascript to animate movement of box
WebDriverWait(driver=self.driver, timeout=10).until(
expected_conditions.visibility_of_element_located((By.ID, "frmb-0-fld-1-edit"))
)
self.driver.find_element_by_id("frmb-0-fld-1-edit").click()
# Wait for edit button to open dropdown
time.sleep(0.2)
WebDriverWait(driver=self.driver, timeout=10).until(
expected_conditions.visibility_of_element_located((By.CLASS_NAME, "close-field"))
)
self.driver.find_element_by_class_name("close-field").click()
# Submit quiz
self.driver.find_element_by_id("frmb-0-submit").click()
# Mark answer for answer key
self.driver.find_elements_by_css_selector("input[type=radio][value=option-1]")[0].click()
self.driver.find_element_by_css_selector("button[type=submit]").click()
# BUG FIX. Did not wait after submission for page to load. So adding this explicit wait.
while self.driver.current_url is '{0}{1}'.format(self.live_server_url, '/home/'):
time.sleep(0.1)
"""
Part 2.
Check created quiz
"""
# The quiz has been created.
# Check if it exists in database
user = UserAdapter.exists('[email protected]')
self.assertIsNotNone(user)
quiz_model = QuizAdapter.get_quiz_for_owner(quiz_name="mock_quiz", user=user).all()[0]
quiz_id = quiz_model.quiz_id
self.assertIsNotNone(quiz_model)
# Also check if it is there in the storage.
quiz_storage_handler = QuizStorageHandler()
self.assertIsNotNone(quiz_storage_handler.download_quiz_content(quiz_model=quiz_model))
"""
Part 3.
Delete created quiz
"""
# Check myquiz
self.driver.find_element_by_id("sidebar_parent_quiz").click()
self.driver.find_element_by_id("sidebar_myquiz").click()
# The href with the uuid takes time to load so deleting with data-toggle=modal.
delete_buttons = self.driver.find_elements_by_css_selector("button[data-toggle=modal]")
self.assertEqual(len(delete_buttons), 1)
self.driver.find_element_by_css_selector("button[data-toggle=modal]").click()
# Dismiss deletion
# Wait for javascript to animate modal
WebDriverWait(driver=self.driver, timeout=10).until(
expected_conditions.visibility_of_element_located(
(By.CSS_SELECTOR, "button[type=button][data-dismiss=modal]")
)
)
self.driver.find_element_by_css_selector("button[type=button][data-dismiss=modal]").click()
time.sleep(0.3) # Wait for modal to fade away.
# Delete quiz
self.driver.find_element_by_css_selector("button[data-toggle=modal]").click()
# Wait for javascript to animate modal
#.........这里部分代码省略.........