所以我创建了一个Python脚本,它使用selenium来自动化网页上的一些东西,但我在使用PyAutoGUI模块时遇到了一个小问题。
我用它来将一些数据复制并粘贴到之前打开的 Chrome 控制台中,效果很好。因此,基本上,当我运行脚本时,将打开一个新的 Chrome 浏览器实例,然后我将在该实例的控制台中粘贴一些 .js 脚本,并使用 PyAutoGUI 模块发送“ENTER”键。
问题是,如果我点击其他 Chrome session ,打开控制台的代码 pyautogui.hotkey('ctrl', 'shift', 'i')
将在 session 中执行我目前正在浏览而不是新启动的带有 Selenium 的浏览器。
对于如何根据 Chrome session 设置过滤器有什么建议吗?
代码如下:
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 非常陌生:)
最佳答案
没关系,我稍微改变了代码,找到了一种直接执行 js 文件的方法,所以一切正常。
def startClicking():
jsScript = open('clicks.js', 'r')
jsScriptContent = jsScript.read()
time.sleep(2)
driver.execute_script(jsScriptContent)
time.sleep(1)
jsScript.close()
关于python - PyAutoGUI - 在错误的浏览器中打开 Chrome 控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54172281/