簡體   English   中英

Selenium -python元素不可點擊

[英]Selenium -python element not clickable

我試圖通過python中的selenium瀏覽facebook。 到目前為止,這是我的腳本。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

usr = ""# I have put 3 different accounts and tested it. Same error
pwd = ""

driver = webdriver.Chrome('E:\python_libs\chromedriver.exe')

driver.get("https://www.facebook.com")

assert "Facebook" in driver.title

elem = driver.find_element_by_id("email")
elem.send_keys(usr)
elem = driver.find_element_by_id("pass")
elem.send_keys(pwd)
elem.send_keys(Keys.RETURN)



elem = driver.find_element_by_css_selector(".input.textInput")
elem.send_keys("Posted using Python's Selenium WebDriver bindings!")



elem = driver.find_element_by_css_selector(".selected")

elem.click()
time.sleep(5)




driver.close()

獲取並正確安裝了chromedriver的Windows上運行此腳本會返回錯誤。

Traceback (most recent call last):
File "C:\Users\Home\Desktop\facebook_post.py", line 28, in <module>
elem.click()
File "C:\Python27\lib\site-packages\selenium-2.42.0-           py2.7.egg\selenium\webdriver\remote\webelement.py", line 60, in click
self._execute(Command.CLICK_ELEMENT)
File "C:\Python27\lib\site-packages\selenium-2.42.0-    py2.7.egg\selenium\webdriver\remote\webelement.py", line 370, in _execute
return self._parent.execute(command, params)
File "C:\Python27\lib\site-packages\selenium-2.42.0-py2.7.egg\selenium\webdriver\remote\webdriver.py", line 172, in execute
self.error_handler.check_response(response)
File "C:\Python27\lib\site-packages\selenium-2.42.0-py2.7.egg\selenium\webdriver\remote\errorhandler.py", line 164, in check_response
raise exception_class(message, screen, stacktrace)
WebDriverException: Message: u'unknown error: Element is not clickable at point (481,     185). Other element would receive the click: <input type="file" class="_n _5f0v" title="Choose a file to upload" accept="image/*" name="file" id="js_0">\n  (Session info: chrome=35.0.1916.114)\n  (Driver info: chromedriver=2.10.267521,platform=Windows NT 6.1     x86)'

我無法做出這個的頭或尾。 任何幫助,將不勝感激。

Graph API在這里不可行,因為我想以自己的身份瀏覽而不是某些應用程序。 但是,如果我自己可以通過圖形API或其他方式進行瀏覽,請告訴我們。

如果您正在多次執行此過程,Selenium在WebDriverWait中有一些選項可以不浪費太多時間並檢查元素是否可見。

是關於Selenium中Waits的文檔, 是Selenium的Python文檔的一部分,它討論了Expected Conditions類。 似乎“可點擊”是您可以檢查的一個條件。

在我的例子中,我寫了一個簡單的函數來處理可見性和點擊,並在每次需要點擊動態的東西時調用它。

我的示例代碼:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

Browser = webdriver.Chrome()

def wait_until_visible_then_click(element):
    element = WebDriverWait(Browser,5,poll_frequency=.2).until(
        EC.visibility_of(element))
    element.click()

編輯:

上面的鏈接似乎是緊張的。 是關於等待的新文檔, 這里是預期的條件文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM