单击在Python中运行的浏览器中的div

时间:2017-12-21 14:52:28

标签: python windows python-3.x

我一直在尝试为自己自动化一个流程,它基本上点击了网页中的很多内容。

我尝试使用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重申,只要分辨率,浏览器缩放级别等保持不变,该程序就可以正常工作。

0 个答案:

没有答案