2016-04-26 169 views
1

我需要點擊頁面中的一個元素,但頁面每1-2s刷新一次(ajax調用)。使用的瀏覽器是Firefox。selenium webdriver python:元素點不可點擊

代碼:

ele = WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH, ".//*[@id='dojox_grid__View_1']/div/div/div/div/table/tbody/tr/td[1]/div"))) 
print ele 
ele.click() 

錯誤:

mouseOnover.click() 
    File "/usr/lib/python2.6/site-packages/selenium-2.53.1-py2.6.egg/selenium/webdriver/remote/webelement.py", line 74, in click 
    self._execute(Command.CLICK_ELEMENT) 
    File "/usr/lib/python2.6/site-packages/selenium-2.53.1-py2.6.egg/selenium/webdriver/remote/webelement.py", line 457, in _execute 
    return self._parent.execute(command, params) 
    File "/usr/lib/python2.6/site-packages/selenium-2.53.1-py2.6.egg/selenium/webdriver/remote/webdriver.py", line 233, in execute 
    self.error_handler.check_response(response) 
    File "/usr/lib/python2.6/site-packages/selenium-2.53.1-py2.6.egg/selenium/webdriver/remote/errorhandler.py", line 194, in check_response 
    raise exception_class(message, screen, stacktrace) 
selenium.common.exceptions.WebDriverException: Message: Element is not clickable at point (267, 162.5). Other element would receive the click: <div style="width: 1360px; height: 621px;" id="dojox_grid_enhanced_plugins_Dialog_1_underlay" class="dijitDialogUnderlay dojoxGridFDTitlePane_underlay" tabindex="-1" data-dojo-attach-point="node"></div> 

如何克服這個問題。

回答

1

如果頁面每兩秒鐘刷新一次,這個結果並不是所有人都感到驚訝。您等待10秒才能獲取元素,但到那時頁面會刷新幾次,並使您持有的對象變爲陳舊。陳舊元素無法點擊。我的建議是等待身體元素,並迅速抓住感興趣的元素。

wait = WebDriverWait(driver, 1) 
body = wait.until(EC.element_to_be_clickable((By.TAG,'body'))) 
ele = wait.until(EC.element_to_be_clickable((By.XPATH, ".//*[@id='dojox_grid__View_1']/div/div/div/div/table/tbody/tr/td[1]/div"))) 
print ele 
ele.click() 

注1:您正在使用xpath來選擇元素。這很慢。通常情況下,這並不重要,但在你的情況下,你是在倒計時。試着用id來取代。如果有問題的元素沒有ID添加一個!注意2:如果仍然發現該元素不可點擊,所有這一切之後,這是因爲其他元素正在覆蓋它。重疊可能是由透明的背景,所以你可能不會注意到。

仔細看看你的錯誤信息,它顯示出width: 1360px; height: 621px;元素正在阻礙。在這個階段,你的CSS似乎有一個n錯誤。要做的最簡單的事情就是通過改變它的CSS可能通過硒來隱藏這個問題元素execute javascript功能

+0

我拋出一個錯誤,文件「/usr/lib/python2.6/site-packages/selenium-2.53.1- py2.6.egg/selenium/webdriver/support/expected_conditions.py「,第91行,in _element_if_visible return element if element.is_displayed()== visibility else False AttributeError:'元組'對象沒有屬性'is_displayed' – Saran

+0

對不起,已更新回答 – e4c5

+0

仍然元素在點(220,163)不可點擊。其他元素會收到點擊錯誤,看到 – Saran

相關問題