PyAutoGUI错误地打开Chrome控制台

2024-04-19 09:58:21 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我创建了一个Python脚本,它使用selenium自动化web页面上的一些内容,而PyAutoGUI模块有一个小问题。在

我用它来复制和粘贴一些数据到以前打开的Chrome控制台上,效果很好。所以基本上,当我运行这个脚本时,会打开一个新的Chrome浏览器实例,然后在这个实例的控制台中粘贴一些.js脚本,并用PyAutoGUI模块发送'ENTER'键。在

问题是,如果我单击其他Chrome会话,打开控制台pyautogui.hotkey('ctrl', 'shift', 'i')的代码将在我当前浏览的会话中执行,而不是在使用selenium新启动的会话中执行。在

有什么建议如何设置一个基于Chrome会话的过滤器?在

代码如下:

driver = Chrome()
driver.get('randomUrl')

def loopProfiles():
  btnKey = driver.find_element_by_xpath('//*[@id="L1"]/div[1]/div[2]/div[4]/div[5]/div/a')
  btnKey.click()

  formEmail = driver.find_element_by_xpath('//*[@id="L1"]/div[2]/div[2]/div/div[2]/form/div/div[1]/input')
  formPass = driver.find_element_by_xpath('//*[@id="L1"]/div[2]/div[2]/div/div[2]/form/div/div[2]/input')
  # Authenticate
  formEmail.send_keys('user')
  formPass.send_keys('pass')

  time.sleep(1)
  btnLogin = driver.find_element_by_xpath('//*[@id="L1"]/div[2]/div[2]/div/div[2]/form/div/div[4]/button[2]')
  btnLogin.click()

  time.sleep(2)
  liveFeed = driver.find_element_by_xpath('//*[@id="L1"]/div[5]/div/div[1]/div/div[1]/div/select/option[3]')
  liveFeed.click()

  time.sleep(5)
  pyautogui.hotkey('ctrl', 'shift', 'j')

  time.sleep(1)
  # copy content from cent-clicks.js file
  jsScript = open('script.js', 'r')
  jsScriptContent = jsScript.read()

  time.sleep(1)
  pyperclip.copy(jsScriptContent)

  jsScript.close()

  time.sleep(1)
  pyautogui.hotkey('ctrl', 'v')
  time.sleep(1)
  pyautogui.hotkey('enter')

我对Python非常陌生:)


Tags: div脚本idl1bytimedriverjs
2条回答

我的第一个建议是在问题中包含您的代码,这样我们就可以实际帮助您:-)

没关系,我已经改变了一点代码,找到了一种直接执行js文件的方法,这样一切都可以正常工作。在

def startClicking():
  jsScript = open('clicks.js', 'r')
  jsScriptContent = jsScript.read()
  time.sleep(2)
  driver.execute_script(jsScriptContent)
  time.sleep(1)
  jsScript.close()

相关问题 更多 >