InvalidElementStateException无效:

2024-09-25 06:35:55 发布

您现在位置:Python中文网/ 问答频道 /正文

这个问题以类似的方式提出,但参数不同,有些答案是混合的。我目前有壁虎河,硒3.5.9。使用python2.7.10。我在pycharm中进行了以下测试:

from selenium import webdriver

from selenium.webdriver.support.ui import WebDriverWait

import unittest

class LoginTest(unittest.TestCase):

    def setUp(self):
        self.driver = webdriver.Firefox()
        self.driver.get("https://www.rosoka.com/")

    def test_Login(self):
        driver = self.driver
        rosokaUsername = "dsmith"
        rosokaPassword = "Whorunit1!"
        loginFieldID = "edit-name"
        passFieldID = "edit-pass"
        loginButtonXpath = "//input[@value ='Log in']"


        loginFieldElement = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_id(loginFieldID))
        passFieldElement = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_id(passFieldID))
        loginButtonElement = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_xpath(loginButtonXpath))

        loginFieldElement.clear()
        loginFieldElement.send_keys(rosokaUsername)
        passFieldElement.clear()
        passFieldElement.send_keys(rosokaPassword)
        loginButtonElement.click()


    def tearDown(self):
        self.driver.quit()

if __name__ == '__main__':
        unittest.main()

我得到:

File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
InvalidElementStateException: Message: Element is not currently interactable and may not be manipulated

有什么想法吗?你知道吗


Tags: lambdaimportselfbydefdriverseleniumelement
1条回答
网友
1楼 · 发布于 2024-09-25 06:35:55

当我导航到该站点时,登录表单字段不可见,我必须单击“用户门户”链接才能看到它们。所以你的剧本也应该这么做。你知道吗

  1. 等待用户门户链接可单击
  2. 点击它
  3. 继续其余的单击操作(注意,单击用户门户链接后,可能需要等待窗体可见)

相关问题 更多 >