PhantomJS ile selenyum, tıklayın () çalışmıyor


2

Bir siteyi işlemek için çalışan bir komut dosyası var. Onunla çalışırken webdriver.Chrome(chromedriver.exe)bir çekicilik gibi çalışır. Ama denediğimde webdriver.PhantomJS(phantomjs.exe)işe yaramıyor.

Daha spesifik olarak, işe yaramazsa, bir aetiketteki tıklama () , HTML ise şu şekildedir:

<a href="javascript:;" class="foo" original-title=""><div class="icon_bar"></div></a>

Bu elementi alıyorum self.driver.find_elements_by_class_name('foo')ve sonra onu bir var'a ayarlıyorum, tonlarca var. Sonra bir döngü yaratıp aradım current.click().

Mesele şu ki, siteyi manuel olarak kontrol edersem hiçbir şey değişmemişse, gerçekten tıklamıyor olmasıdır.

  • Python 3.4.2
  • Selenyum 2.44.0
  • Windows 8.1

Java ile aynı problemim var: - /
Betlista

Ayrıca click () öğesinin Selenyum ve Phantom.js web sürücüsü ile çalışmadığını da tespit ettim. Bu bağlantı size yardımcı olacaktır: hjrlive.wordpress.com/2014/04/29/…
Riadh Elloumi

Yanıtlar:


1

PhantomJS'nin her zaman bazı web sitelerinde beklendiği gibi çalışmadığı bilinmektedir. Bu send_key(Keys.RETURN)etiketteki gibi hileler / kesmeler kullanabilirsiniz . Bir görüntüyü veya başka bir etiketi tıklatarak da deneyebilirsiniz. Ayrıca Href'i alabilir ve sonra arayabilirsin driver.get(yourhiref).

Başka bir şey, bu unsurlardan sadece birine mi ihtiyacınız var? Veya her elemanı tıklamak için find_elements_by_class_name('foo')? Çünkü eğer ilk durum buysa, xpath ve css seçicisini şöyle kullanırdım:

driver.find_element_by_xpath("//a[@Class='foo']/div")[n].click()

veya

driver.find_element_by_xpath("//a[@Class='foo']")[n].click()

Burada aradığın çocuk n.

PS: PhantomJS yerine Başsız Firefox'a giderdim

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.