[英]Selenium Webdriver python: Element is not currently visible & same class name
[英]Python, Selenium Webdriver: The element is not visible for Firefox.
我正在嘗試使用具有打開彈出窗口的編輯鏈接的頁面上的webelement進行迭代。 在打開的彈出窗口中,我有簡單的輸入字段和“應用/取消”按鈕。 在我的腳本中,我執行以下操作以在輸入字段中輸入一些文本:
def enter_text(self, text, action):
if self.is_element_present(self._input_locator):
self.selenium.find_element(*self._input_locator).send_keys(text)
if action == 'Apply':
self.selenium.find_element(*self._apply_button_locator).click()
elif action == 'Cancel':
self.selenium.find_element(*self._cancel_button_locator).click()
當我在Chrome中運行腳本時-一切正常,找到所有網絡元素,並將輸入文本輸入該字段。 但是,當我在Firefox中運行完全相同的腳本時-它會打開帶有輸入字段和2個按鈕的彈出窗口(這對於Webdriver來說是可見的),但是文本沒有輸入到該字段中會導致錯誤:
ElementNotVisibleException: Message: u'Element is not currently visible and so may not be interacted with'
如果彈出窗口實際上是打開的(我可以看到),但Webdriver告訴它不可見,為什么會發生這種情況? 另外,我進行了幾次睡眠,只是為了確保加載了彈出窗口,然后輸入了文本,但這並沒有幫助。
任何幫助將不勝感激。
兩個想法:
1:確保您的HTML有效,例如通過w3c驗證程序運行它。 損壞的html是不同瀏覽器中不同行為的常見原因。
2:您是否確實使用以下方法將硒切換到了彈出窗口:
for handle in self.selenium.window_handles:
# identify popup window's handle somehow
self.selenium.switch_to_window(handle)
順便說一句,如果您還沒有遇到selenium.implicitly_wait(3)
,那么它對於避免time.sleep
和wait-for構造是一種非常有用的方法。
您使用的是Witch Firefox版本還是Webdriver版本?
請嘗試以下操作:
請嘗試並告訴我會發生什么,
問候
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.