0

我在 firefox 无头模式下使用 ActionChains 函数,但它不起作用。我有这个滚动的 divcode_scroll = driver.find_element_by_class_name('CodeMirror-scroll')我想在这个 div 内双击,然后复制/粘贴整个文本。double_click()函数工作正常,我已经对其进行了测试,但我认为key_down/keyupsend_keys()函数不起作用。底线:文本未被复制。

PS 代码在正常模式下运行良好。

驱动配置:

options = webdriver.FirefoxOptions()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
driver = webdriver.Firefox(options=options, capabilities=capa,executable_path=r''+os.path.dirname(os.path.abspath(__file__))+'\geckodriver.exe')

代码:

code_scroll = driver.find_element_by_class_name('CodeMirror-scroll')
actions = ActionChains(driver)
actions.double_click(code_scroll).perform()
actions.key_down(Keys.CONTROL)
actions.send_keys('a').perform()
actions.send_keys('c').perform()
actions.key_up(Keys.CONTROL)
function_body_content = pyperclip.paste()

关于设置窗口的手动大小,我已经尝试了几个答案,但没有一个有效。

已经尝试过的解决方案:

1) driver.set_window_size(1440, 900)
2) options.add_argument("--window-size=1920, 1480")
3) options.add_argument('window-size=1920x1480')
4) options.add_argument('--width=1920')
   options.add_argument('--height=1480')
4

1 回答 1

0

它不起作用的是无头chrome或firefox。似乎这是一种错误。但是你可以使用 PhantomJs webdriver,它允许剪贴板粘贴,

于 2020-07-04T14:46:59.330 回答