Python - Selenium - How to use Browser Shortcuts

后端 未结 4 1157
遥遥无期
遥遥无期 2020-12-19 08:51

Once a browser page is loaded I\'m looking to use the CRTL+P shortcut in Goggle Chrome to enter the print page and then simply press return to print the page.



        
相关标签:
4条回答
  • 2020-12-19 09:12
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    
    browser.get('https://www.myglenigan.com/project_search_results.aspx?searchId='+ID)
    element=browser.find_element_by_xpath("//body")
    element.send_keys(Keys.CONTROL, 'p')
    

    Just a note, this will open Firefox print panel. But the same code will not work in Goggle Chrome.

    0 讨论(0)
  • 2020-12-19 09:24

    I have tested this on Google Chrome and the problem can be solved using a combination of .key_down() and .send_keys() methods of the ActionChains class.

    ActionChains(driver).key_down(Keys.CONTROL).send_keys('p').key_up(Keys.CONTROL).perform()
    ActionChains(driver).send_keys(Keys.ENTER)
    
    0 讨论(0)
  • 2020-12-19 09:28
    from selenium.webdriver.common.action_chains import ActionChains
    from selenium.webdriver.common.keys import Keys
    
    ActionChains(browser).send_keys(Keys.CONTROL, "p").perform()
    

    that would send the keyboard shortcut for a print dialog

    I haven't found a way to do this in FF for printing though - ctrl+p will open the print dialog, but FF has a focus bug that doesn't allow one to do Keys.ENTER for the dialog itself

    hopefully this will work for you in Chrome, I haven't tested it there

    please update if you find a way around this - possibly try AutoIt

    If none of the above works you can always do

    browser.get_screenshot_as_file( path + 'page_image.jpg' )
    
    0 讨论(0)
  • 2020-12-19 09:30

    If i understood your question correctly my suggestion is that you install and use the pyautogui module to make your python program press keys

    For example:

    import pyautogui
    pyautogui.hotkey('ctrl','p')
    

    see the pyautogui documentation for more information: https://pyautogui.readthedocs.io/en/latest/introduction.html

    0 讨论(0)
提交回复
热议问题