当前位置: 首页>>代码示例>>Python>>正文


Python ActionChains.context_click方法代码示例

本文整理汇总了Python中selenium.webdriver.common.action_chains.ActionChains.context_click方法的典型用法代码示例。如果您正苦于以下问题:Python ActionChains.context_click方法的具体用法?Python ActionChains.context_click怎么用?Python ActionChains.context_click使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在selenium.webdriver.common.action_chains.ActionChains的用法示例。


在下文中一共展示了ActionChains.context_click方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: _context_click

# 需要导入模块: from selenium.webdriver.common.action_chains import ActionChains [as 别名]
# 或者: from selenium.webdriver.common.action_chains.ActionChains import context_click [as 别名]
 def _context_click(self, name, offset=15):
     """ Display context menu. """
     chain = ActionChains(self.browser)
     chain.move_to_element_with_offset(self.root, offset, 15)
     chain.context_click(None)
     chain.perform()
     time.sleep(0.5)
     self(name).click()
开发者ID:Daiyu506,项目名称:OpenMDAO-Framework,代码行数:10,代码来源:slot.py

示例2: context_click

# 需要导入模块: from selenium.webdriver.common.action_chains import ActionChains [as 别名]
# 或者: from selenium.webdriver.common.action_chains.ActionChains import context_click [as 别名]
    def context_click(self, elem):
        """
        Context  click action on elem.

        Parameters
        ----------
        elem: `WebElement`
            The WebElement to be double clicked on.
        """
        a_chain = ActionChains(self.d)
        a_chain.context_click(elem).perform()
开发者ID:Peergos,项目名称:web-ui,代码行数:13,代码来源:controllers.py

示例3: test_tool_showHideClip

# 需要导入模块: from selenium.webdriver.common.action_chains import ActionChains [as 别名]
# 或者: from selenium.webdriver.common.action_chains.ActionChains import context_click [as 别名]
    def test_tool_showHideClip(self):    
        driver = self.driver

        # Wait for the image window to be present (ensures browser is fully loaded)
        imageWindow = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.XPATH, "//div[@qxclass='skel.widgets.Window.DisplayWindowImage']")))
    
        toolBar = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "//div[@qxclass='skel.widgets.Menu.ToolBar']")))
        self.assertIsNotNone( toolBar, "Could not find the tool bar")
        actionChains = ActionChains(driver)
        actionChains.context_click(toolBar).perform()
        
        # Click the customize item on the menu
        customizeButton = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "//div[text()='Customize...']/..")))
        self.assertIsNotNone( customizeButton, "Could not find the customize button in context")
        ActionChains(driver).click( customizeButton).perform()
        
        # First make sure no clips are checked
        clippingButton = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "//div[text()='Clipping']/preceding-sibling::div/div")))
        self.assertIsNotNone( clippingButton, "Could not clipping button in customize dialog")
        styleAtt = clippingButton.get_attribute( "style");
        print "Style", styleAtt
        if "checked.png" in styleAtt:
            print "Clipping checked"
            clipParent = clippingButton.find_element_by_xpath( '..')
            ActionChains(driver).click( clipParent ).perform()
            
        # Check that there are no  clip buttons on the toolbar by looking for labels with a %
        self._verifyClips( toolBar, 0 )
        
        # Open the Clipping folder by performing 2 clicks so that the 98% clip button is visible
        # clippingTreeItem = clippingButton.find_element_by_xpath( '../..')
        clippingOpenButton = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "//div[text()='Clipping']/../div[@qxclass='qx.ui.tree.core.FolderOpenButton']")))
        self.assertIsNotNone( clippingOpenButton, "Could not find open folder button for clipping")
        ActionChains( driver ).click( clippingOpenButton ).perform()
        clipOpenButton = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "//div[text()='Clips']/../div[@qxclass='qx.ui.tree.core.FolderOpenButton']")))
        self.assertIsNotNone( clipOpenButton, "Could not find open folder button for clip")
        driver.execute_script( "arguments[0].scrollIntoView(true);", clipOpenButton)
        ActionChains( driver ).click( clipOpenButton ).perform()
        
        # Now click the 98% clip button on the customize dialog
        clipButton = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "//div[text()='98%']/preceding-sibling::div/div/..")))
        self.assertIsNotNone( clipButton, "Could not find clip button in customize dialog")
        ActionChains(driver).click( clipButton).perform()
        
        # Verify that the 98% clip appears on the tool bar
        clipRadio = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "//div[text()='98%']")))
        self.assertIsNotNone( clipRadio, "Clip radio did not appear on tool bar")
        
        # Remove the 98% clip by unclicking the button on the customize dialog
        ActionChains(driver).click( clipButton).perform()
        
        # Verify the all clips are gone
        self._verifyClips( toolBar, 0 )
开发者ID:pfederl,项目名称:CARTAvis,代码行数:55,代码来源:tMenuToolVisibility.py

示例4: context_click

# 需要导入模块: from selenium.webdriver.common.action_chains import ActionChains [as 别名]
# 或者: from selenium.webdriver.common.action_chains.ActionChains import context_click [as 别名]
 def context_click(self, locator):
     if locator.find('link=') == 0:
         locator_string = locator[5:len(locator)]
         element = self.sel.find_element_by_link_text(locator_string)
     elif locator.find('xpath=') == 0: # array of elements
         element = self.get_xpath_element(locator)
     else:
         element = self.sel.find_element_by_xpath(locator)
         
     if element != None:
         action = ActionChains(self.sel)
         action.context_click(element)
         action.perform()
开发者ID:tlichtenberg,项目名称:py-selenium-layers,代码行数:15,代码来源:webdriverlib.py

示例5: test_05_context_click

# 需要导入模块: from selenium.webdriver.common.action_chains import ActionChains [as 别名]
# 或者: from selenium.webdriver.common.action_chains.ActionChains import context_click [as 别名]
    def test_05_context_click(self):

        driver = self.driver

        try:
            elm_catering_charges = driver.find_element_by_link_text("Catering Charges")
            action_chain = ActionChains(driver)

            # open link in a new tab with context click
            builder = action_chain.context_click(on_element=elm_catering_charges)
            sleep(0.5)
            builder.send_keys(Keys.DOWN).send_keys(Keys.RETURN).send_keys(Keys.DOWN).send_keys(Keys.ESCAPE).perform()
            sleep(1)
            window_handles = driver.window_handles
            print driver.current_window_handle
            driver.switch_to.window(window_handles[-1])
            print driver.current_window_handle
            driver.close()
            driver.switch_to.window(window_handles[0])

        except EX.StaleElementReferenceException:
            print self._testMethodName + " - Error at line number : " + sys.exc_traceback.tb_lineno
            print sys.exc_info()
        except NoSuchElementException:
            print self._testMethodName + " - Error at line number : " + sys.exc_traceback.tb_lineno
            print sys.exc_info()
        except EX.NoSuchWindowException:
            print self._testMethodName + " - Error at line number : " + sys.exc_traceback.tb_lineno
            print sys.exc_info()
开发者ID:biswajit-713,项目名称:STAF,代码行数:31,代码来源:IR_Train_Search.py

示例6: triggerNodeEvent

# 需要导入模块: from selenium.webdriver.common.action_chains import ActionChains [as 别名]
# 或者: from selenium.webdriver.common.action_chains.ActionChains import context_click [as 别名]
 def triggerNodeEvent(self, event):
   if self.graph == 'network':
     i = 0
   else:
     i = 1
   selector = '#graph' + str(i) + ' > g > g:first-child > g:first-child'
   elem = self.driver.find_element_by_css_selector(selector)
   action = ActionChains(self.driver)
   
   if event == 'click':
     action.click(elem)
   elif event == 'right':
     action.context_click(elem)
   else:
     action.move_to_element(elem)
     
   action.perform()
开发者ID:chaitan3,项目名称:bonesim,代码行数:19,代码来源:graph.py

示例7: copy_img

# 需要导入模块: from selenium.webdriver.common.action_chains import ActionChains [as 别名]
# 或者: from selenium.webdriver.common.action_chains.ActionChains import context_click [as 别名]
    def copy_img(self):
        get_folders = self.driver.find_elements_by_css_selector("*[pr-test='FolderID']")
        for folder in get_folders:
            actions = ActionChains(self.driver)
            actions.context_click(folder).perform()
            time.sleep(3)
            copy = self.driver.find_elements_by_link_text("копіювати")
            copy[0].click()
            time.sleep(3)
            actions = ActionChains(self.driver)
            actions.context_click(folder).perform()
            time.sleep(3)
            paste = self.driver.find_elements_by_link_text("вставити")
            paste[0].click()
            time.sleep(3)

            # print(get_folders.text)
            print(folder.text)
开发者ID:Vovax,项目名称:profi_com,代码行数:20,代码来源:file_manager.py

示例8: layout_custom

# 需要导入模块: from selenium.webdriver.common.action_chains import ActionChains [as 别名]
# 或者: from selenium.webdriver.common.action_chains.ActionChains import context_click [as 别名]
def layout_custom(unittest, driver, rows, cols ):
    timeout = selectBrowser._getSleep()

     # Now right click the toolbar
    toolBar = driver.find_element_by_xpath( "//div[@qxclass='skel.widgets.Menu.ToolBar']")
    actionChains = ActionChains(driver)
    actionChains.context_click(toolBar).perform()

    # Find and click the customize button
    customizeButton = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "//div[text()='Customize...']/..")))
    ActionChains(driver).click( customizeButton).perform()
    
    # Uncheck clipping
    layoutButton = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "//div[text()='Layout']/preceding-sibling::div/div")))
    styleAtt = layoutButton.get_attribute( "style");
    print "Style", styleAtt
    if not "checked.png" in styleAtt:
        print "Clipping checked"
        layoutParent = layoutButton.find_element_by_xpath( '..')
        ActionChains(driver).click( layoutParent ).perform()
        
    # Close the toolbar
    closeButton = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "//div[text()='Close']/..")))
    ActionChains(driver).click( closeButton).perform()
    
    # Click the customize button on the toolbar
    customLayoutButton = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "//div[text()='Custom Layout']")))
    ActionChains(driver).click( customLayoutButton ).perform()

    # Get the row count spin and set its value.
    rowSpin = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "//div[starts-with(@id,'customLayoutRows')]/input")))
    rowSpin.send_keys( Keys.BACK_SPACE )
    rowSpin.send_keys( str(rows) )
    
    # Get the column count spin and set its value.
    colSpin = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "//div[starts-with(@id,'customLayoutCols')]/input")))
    colSpin.send_keys( str(cols) )
    colSpin.send_keys( Keys.ARROW_LEFT )
    colSpin.send_keys( Keys.BACK_SPACE )
    
    # Close the custom layout dialog
    closeButton = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "//div[starts-with(@id,'customLayoutOK')]")))
    ActionChains(driver).click(closeButton).perform()
    time.sleep(timeout)
开发者ID:Astroua,项目名称:CARTAvis,代码行数:46,代码来源:Util.py

示例9: RightClickSvgLine

# 需要导入模块: from selenium.webdriver.common.action_chains import ActionChains [as 别名]
# 或者: from selenium.webdriver.common.action_chains.ActionChains import context_click [as 别名]
def RightClickSvgLine():
  global driver
  global bdrive
  bdrive = os.environ.get('BrSelect')
  if bdrive  == 'chrome':
  	actionChains = ActionChains(driver)
  	arrow = driver.find_element_by_xpath(wcjoinarrow)
  	actionChains.context_click(arrow).perform()
  elif bdrive  == 'IE' or 'firefox':
  	elem = WebDriverWait(driver, 60).until(EC.element_to_be_clickable((By.ID, 'svg01-line')))
  	x = 0
  	y = 0
  	x1 = elem.get_attribute("x1")
  	x2 = elem.get_attribute("x2")
  	x = ((float(x1)+float(x2))/2)+5
  	y1 = elem.get_attribute("y1")
  	y2 = elem.get_attribute("y2")
  	y = ((float(y1)+float(y2))/2)+5
  	ActionChains(driver).move_to_element_with_offset(elem, x, y).perform()
  	ActionChains(driver).context_click().perform()
开发者ID:menshka,项目名称:WPython,代码行数:22,代码来源:wcsmpl01.py

示例10: test_menu_hideClipping

# 需要导入模块: from selenium.webdriver.common.action_chains import ActionChains [as 别名]
# 或者: from selenium.webdriver.common.action_chains.ActionChains import context_click [as 别名]
    def test_menu_hideClipping(self):    
        driver = self.driver

        # Click on an CasaImageLoader Window so that clipping is available on the menu.
        imageWindow = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.XPATH, "//div[@qxclass='skel.widgets.Window.DisplayWindowImage']")))
        ActionChains(driver).click(imageWindow).perform()

        # Verify that clipping commands can be found on the menu bar.
        menuBar = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "//div[@qxclass='skel.widgets.Menu.MenuBar']")))
        self.assertIsNotNone( menuBar, "Could not find the menu bar")
        clipping = menuBar.find_elements_by_xpath( "./div[contains(text(), 'Clipping')]" )
        self.assertIsNotNone( clipping, "Clipping not present on menu bar");

        # Now right click the toolbar
        toolBar = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "//div[@qxclass='skel.widgets.Menu.ToolBar']")))
        self.assertIsNotNone( toolBar, "Could not find the tool bar")
        actionChains = ActionChains(driver)
        actionChains.context_click(toolBar).perform()

        # Find and click the customize button
        customizeButton = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "//div[text()='Customize...']/..")))
        self.assertIsNotNone( customizeButton, "Could not find the customize button in context")
        ActionChains(driver).click( customizeButton).perform()
        
        # Uncheck clipping
        clippingButton = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "//div[text()='Clipping']/preceding-sibling::div/div")))
        self.assertIsNotNone( clippingButton, "Could not clipping button in customize dialog")
        styleAtt = clippingButton.get_attribute( "style");
        print "Style", styleAtt
        if "checked.png" in styleAtt:
            print "Clipping checked"
            clipParent = clippingButton.find_element_by_xpath( '..')
            ActionChains(driver).click( clipParent ).perform()
        
        # Check that the clipping menu item is no longer available
        try: 
            clipButton = menuBar.find_element_by_xpath( "./div[contains(text(), 'Clipping')]" )
            self.assertTrue( False, "Should not be able to locate clipping button")
        except Exception:
            print "Test succeeded because we should not be able to find clipping"   
开发者ID:pfederl,项目名称:CARTAvis,代码行数:42,代码来源:tMenuToolVisibility.py

示例11: delete_folder

# 需要导入模块: from selenium.webdriver.common.action_chains import ActionChains [as 别名]
# 或者: from selenium.webdriver.common.action_chains.ActionChains import context_click [as 别名]
    def delete_folder(self, new_folder_id):

        self.driver.find_elements_by_css_selector("*[pr-test='GoBackFolder']")[0].click()
        time.sleep(3)

        get_folders = self.driver.find_elements_by_css_selector("*[pr-test='FolderID']")
        new_folder_name = ('new one')

        for folder in get_folders:
            # print(folder.text)
            if folder.text == new_folder_name:

                actions = ActionChains(self.driver)
                actions.context_click(folder).perform()
                time.sleep(5)
                re = self.driver.find_elements_by_link_text("remove")
                re[0].click()
                time.sleep(5)
                self.driver.find_elements_by_css_selector("*[pr-test='ConfirmRemove']")[0].click()
                time.sleep(3)

                self.assertion(new_folder_id)
                break
开发者ID:Vovax,项目名称:profi_com,代码行数:25,代码来源:file_manager.py

示例12: ActionChains

# 需要导入模块: from selenium.webdriver.common.action_chains import ActionChains [as 别名]
# 或者: from selenium.webdriver.common.action_chains.ActionChains import context_click [as 别名]
from selenium import webdriver
import time
import requests
from selenium.webdriver.common.action_chains import ActionChains

# open chrome
browser = webdriver.Chrome()
browser.get("http://v.douyin.com/duAERB/")

time.sleep(1)

# find play button
playButton = browser.find_element_by_css_selector('div.play-btn')
playButton.click()

time.sleep(5)

# 此处涉及右键保存
# 参考:https://www.cnblogs.com/tobecrazy/p/3969390.html
player = browser.find_element_by_css_selector('video.player')

actions = ActionChains(browser)
actions.move_to_element(player)
actions.context_click()
actions.perform()
开发者ID:shenhailuanma,项目名称:selfTestCode,代码行数:27,代码来源:test2.py

示例13: WebDriverElement

# 需要导入模块: from selenium.webdriver.common.action_chains import ActionChains [as 别名]
# 或者: from selenium.webdriver.common.action_chains.ActionChains import context_click [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)
开发者ID:55500081,项目名称:splinter,代码行数:104,代码来源:__init__.py

示例14: doSearch

# 需要导入模块: from selenium.webdriver.common.action_chains import ActionChains [as 别名]
# 或者: from selenium.webdriver.common.action_chains.ActionChains import context_click [as 别名]

#.........这里部分代码省略.........

            l_finished = True
            continue
        except EX.NoSuchElementException:
            print('There should be results')

        try:
            # reformulation
            l_reformulation = l_driver.find_element_by_xpath(
                '//span[@class="denombrement"]/strong[@id="SEL-nbresultat"]')

            l_resultCount = l_reformulation.text
            print('l_resultCount:', l_resultCount)

        except EX.NoSuchElementException:
            print('No reformulation ?! ...')

        l_articleList = []
        try:
            for l_company in l_driver.find_elements_by_xpath('//h2[@class="company-name"]/../../../..'):
                l_articleId = l_company.get_attribute('id')
                print('l_articleId:', l_articleId)
                l_articleList += [l_articleId]

        except EX.NoSuchElementException:
            print('[04] Something is badly wrong (Element not found) ...')
            return 0

        try:
            l_article = 0
            for l_articleId in l_articleList:
                if killPopup(l_driver):
                    print('Popup Killed, waiting for 10 s.')
                    time.sleep(10)

                print('+ l_articleId:', l_articleId)
                l_company = l_driver.find_element_by_xpath(
                    '//article[@id="{0}"]//h2[@class="company-name"]/a[2]'.format(l_articleId))

                #l_driver.execute_script("return arguments[0].scrollIntoView();", l_company)

                l_name = l_company.text
                print('Fetching:', l_name)

                l_driver.execute_script("return arguments[0].scrollIntoView();", l_company)
                l_driver.execute_script("window.scrollBy(0, -300);")

                # Save the window opener (current window, do not mistaken with tab... not the same)
                l_mainWindow = l_driver.current_window_handle

                # l_company.send_keys(Keys.CONTROL + Keys.RETURN)
                # scroll to it, to make it visible, and then click it
                l_actions = ActionChains(l_driver)
                l_actions.move_to_element(l_company)
                l_actions.context_click()
                l_actions.send_keys(Keys.ARROW_DOWN)
                l_actions.send_keys(Keys.ENTER)
                l_actions.perform()

                # Switch tab to the new tab, which we will assume is the next one on the right
                l_driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.TAB)

                # Put focus on current window which will, in fact, put focus on the current visible tab
                l_driver.switch_to_window(l_mainWindow)

                if doOneCompany(l_driver, l_fOutMain, l_fOutSecondary, l_count):
                    l_count += 1

                CommonFunctions.randomWait(p_minDelay, p_maxDelay)

                # Close current tab
                l_driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 'w')

                # Put focus on current window which will be the window opener
                l_driver.switch_to_window(l_mainWindow)

        except EX.NoSuchElementException:
            print('[05] Something is badly wrong (Element not found) ...')
            return 0

        # locate the next button and click it
        try:
            l_next = l_driver.find_element_by_id('pagination-next')

            # scroll to it, to make it visible, and then click it
            l_actions = ActionChains(l_driver)
            l_actions.move_to_element(l_next)
            l_actions.click()
            l_actions.perform()
        except EX.NoSuchElementException:
            print('No more results')
            l_finished = True

    print('Number of items retrieved:', l_count)

    l_fOutMain.close()
    l_fOutSecondary.close()

    l_driver.quit()
    return l_count
开发者ID:fi11222,项目名称:TNScrape,代码行数:104,代码来源:PagesJaunes.py

示例15: WebDriverElement

# 需要导入模块: from selenium.webdriver.common.action_chains import ActionChains [as 别名]
# 或者: from selenium.webdriver.common.action_chains.ActionChains import context_click [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)
开发者ID:sporteasy,项目名称:splinter,代码行数:104,代码来源:__init__.py


注:本文中的selenium.webdriver.common.action_chains.ActionChains.context_click方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。