首次运行PyCharm ChromeDriver tes

2024-04-26 12:46:12 发布

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

所以我有python2.7.10。我有硒3.5.9。我有PyCharm的最新版本,并且我设置了本地翻译。我正试图在我公司的网站上运行UnitTest,现在我回来了:

Ran 0 tests in 0.000s

OK

这是我的密码:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
import unittest

class LoginTest(unittest.TestCase):

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

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

        loginFieldElement = WebDriverWait(driver, 10).until(lambda driver: find_element_by_id(loginFieldID))
        passFieldElement = WebDriverWait(driver, 10).until(lambda driver: find_element_by_id(passFieldID))
        loginButtonElement = WebDriverWait(driver, 10).until(lambda 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()

有人能帮忙吗?你知道吗


Tags: lambdainimportselfbydefdriverelement
2条回答

if __name__ == '__main__'块需要删除。它现在在你的班级里。你知道吗

而且,它看起来应该是rosokaPassword(camelCase)在passFieldElement.send_keys(rosokapassword)内。你知道吗

编辑:

我修改了代码并在网站上测试了它(虽然我没有真正的证书,所以我不得不把剩下的留给你)。Selenium在查找元素时遇到了问题,直到我将鼠标悬停在“用户门户”链接上以显示下拉列表。你知道吗

import unittest

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains


class LoginTest(unittest.TestCase):

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

    def test_login(self):
        rosoka_username = "*****@rosoka.com"
        rosoka_password = "******"

        user_portal = self.driver.find_element_by_xpath(
            '//*[@id="om-leaf-om-u1-570991293-8"]/span/span')
        hover = ActionChains(self.driver).move_to_element(user_portal)
        hover.perform()

        login_field = self.driver.find_element_by_id('edit-name')
        login_field.clear()
        login_field.send_keys(rosoka_username)

        pass_field = self.driver.find_element_by_id('edit-pass')
        pass_field.clear()
        pass_field.send_keys(rosoka_password)

        login_button = self.driver.find_element_by_id('edit-submit')
        login_button.click()

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


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

这是添加了等待时间和屏幕截图的正确答案: 导入单元测试 导入时间

从selenium导入webdriver 从selenium.webdriver.common文件.action\u chains导入ActionChains

类逻辑测试(unittest.TestCase测试用例)地址:

def setUp(self):
    self.driver = webdriver.Chrome()
    self.driver.get("https://www.rosoka.com")
    self.driver.save_screenshot('rosoka.png')
    time.sleep(10)

def test_login(self):
    rosoka_username = "****"
    rosoka_password = "***"

    user_portal = self.driver.find_element_by_xpath('//*[@id="om-leaf-om-u1-570991293-8"]/span/span')
    hover = ActionChains(self.driver).move_to_element(user_portal)
    hover.perform()

    login_field = self.driver.find_element_by_id('edit-name')
    login_field.clear()
    login_field.send_keys(rosoka_username)

    pass_field = self.driver.find_element_by_id('edit-pass')
    pass_field.clear()
    pass_field.send_keys(rosoka_password)

    login_button = self.driver.find_element_by_id('edit-submit')
    login_button.click()
    time.sleep(10)


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

如果名称=='main': 单元测试.main()

相关问题 更多 >