Ich habe einen einfachen Web - Crawler, der sich bei Twitter anmeldet, geht die folgende Seite, dann ergreift Informationen von allen meinen Followern (wenn sie stummgeschaltet sind, etc) durch Klicken auf Zahnrad-Symbol. Das Problem ist, dass die Klickfunktion auf meinem neuen Computer nicht mehr funktioniert.Problem beim Klicken auf Web - Element mit Python, Selen und pyvirtualdisplay
Auch ich benutze den Firefox() Web-Treiber. Hier
ist der Code, den ich verwende: (Sie müssen Ihre eigenen Anmeldeinformationen hinzuzufügen für Twitter es zum Laufen zu bringen): https://gist.github.com/anonymous/4c64054d01af77ae2c5c2b39a2165d80
Dieser Code funktioniert völlig in Ordnung, auf einer Maschine, aber nicht ein DOM-Element klicken übereinander. Hier sind einige Spezifikationen, die einen Einblick bieten können.
::GOOD BOX::
pip packages
- selenium 2.47.3
- pyvirtualdisplay 0.1.5
python 2.7
firefox 41.0
lib32z-dev 1:1.2.8.dfsg-1ubuntu1
python-lxml 3.3.3-1ubuntu0.1
python-dev 2.7.5-5ubuntu3
build-essential 11.6ubuntu6
-------------------------
::BAD BOX::
pip packages
- selenium 2.53.6
- pyvirtualdisplay 0.2
python 2.7
firefox-mozilla-build 47.0.1-0ubuntu1 (not sure why I need this, the other box doesn't seem to have it. But things break if I remove it)
firefox 47.0.1
python-dev 2.7.11-1
libxml2-dev 2.9.3+dfsg1-1ubuntu0.1
libxslt-dev (1.1.28-2.1)
build-essential 12.1ubuntu2
Wenn ich diesen Code auf der „bad Box“ laufen und nicht die Ausnahmen fangen, bekomme ich folgendes:
selenium.common.exceptions.WebDriverException: Message: Element is not clickable at point (464, 1). Other element would receive the click: <div class="container"></div>
Ausnahme eindeutig fest, dass ein anderes Element klicken Mittel erhalten würde Ihr aktuelles Element wird von einem anderen Element überlagert, das div ist. Es könnte möglich sein, wenn Sie ein Element finden, einen Fortschrittsbalken auf der Seite, die das Element überlagert. Sie müssen also mit WebDriverWait warten, bis das Element anklickbar ist ... :) –
Sollte ich warten, bevor Sie das Element finden, oder warten, bevor Sie es anklicken? – Tyrick
Sie sollten während der Suche Element mit WebDriverWait warten ... :) –