web-dev-qa-db-fra.com

Comment définir la taille de la fenêtre dans Selenium Chrome Python

Le code suivant pour redimensionner une fenêtre Selenium chrome window ne fonctionne pas:

driver.set_window_size(1920, 1080)
time.sleep(5)
size = driver.get_window_size()
print("Window size: width = {}px, height = {}px.".format(size["width"], size["height"]))

D'où la sortie est:

Window size: width = 1044px, height = 788px

J'ai également essayé d'utiliser des options pour définir la taille de la fenêtre lors de la création du pilote (et beaucoup d'autres choses, semblent des commentaires ci-dessous), mais je ne peux pas le faire fonctionner non plus:

options.add_argument("--window-size=1920,1080")

J'utilise Selenium 3.14.0, chrome version du pilote 72.0.3626.109 et fonctionne en mode arrière-plan/sans tête: j'ai littéralement besoin d'exécuter mon code en arrière-plan, ce qui signifie qu'il se lance automatiquement en arrière-plan. Je pense qu'il y a une différence subtile entre sans tête, qui lorsqu'elle est lancée est associée à un utilisateur particulier, et l'arrière-plan, qui est également sans tête mais peut ne pas être associé à un utilisateur particulier et peut avoir d'autres particularités - je commence à penser que cela peut faire partie de mon problème.

Je voudrais faire fonctionner chrome parce que Firefox ne fonctionne pas en arrière-plan (dont j'ai besoin), et donc c'est une douleur.

Je veux comprendre cela parce que je ne vois pas un élément sur lequel je dois cliquer lorsque la fenêtre est si petite.

4
David Miller

J'ai donc finalement compris quel était le problème: l'exécution du planificateur de tâches Windows avec l'option `` exécuter si l'utilisateur est connecté ou non '' ouvre uniquement un petit navigateur (1024x768) qui NE PEUT PAS être redimensionné, même avec toutes les excellentes suggestions proposées ici.

Voir le même problème résolu ici: résolution d'écran en mode "Exécuter si l'utilisateur est connecté ou non", dans le planificateur de tâches Windows

La solution de contournement moins idéale consiste donc à s'exécuter uniquement lorsque l'utilisateur est connecté.

Merci pour votre aide!

0
David Miller