我一直在尝试为自己自动化一个流程,它基本上点击了网页中的很多内容。
我尝试使用pyAutoGui找到我需要的东西并点击并输入。我发现的问题是,如果以任何方式更改屏幕分辨率或浏览器显示大小,它将停止工作(它将参考图像与所需的屏幕截图进行比较)。所以目前我需要一些找到html元素位置并点击它的东西(如果需要的话,pyAutoGui会点击它)。
主要问题是我需要使用runas打开Internet Explorer,因为每次程序运行时,都会使用不同的用户。 我看到很多人建议使用可以打开自己的浏览器会话的网络工具包,但我不知道他们是否能够以不同的用户身份运行。
任何人都可以对这件事情发表一些看法吗?
编辑:一些代码。
在屏幕上找到参考图像的功能(仅在图像完美时才有效)
def FindImageAndClick(ImagePath:str, numberOfTries:int):
counter = 0
while counter <numberOfTries:
try:
x, y = pyautogui.locateCenterOnScreen(ImagePath, grayscale=True)
print('encontrado posicoes x='+str(x)+' e y='+str(y))
break
except:
time.sleep(2.0)
counter += 1
if counter==numberOfTries:
return False
pyautogui.moveTo(x,y)
pyautogui.click()
return True
使用runas打开IE(程序启动时提供的用户凭据):
iePath='"'+ '\\'+'"'+os.getenv("SystemDrive")+'\Program Files\Internet Explorer\iexplore.exe\\'+'"'
website = corporate website
print (iePath + website)
o = subprocess.Popen('runas.exe /user:domain\%s %s %s' %(currentUser, iePath, website))
time.sleep(1.0)
pyautogui.typewrite(currentPassword)
pyautogui.press('enter')
Jus重申,只要分辨率,浏览器缩放级别等保持不变,该程序就可以正常工作。