登錄頁面元素定位失敗解決

問題描述

使用自動化腳本訪問csdn首頁,點擊登錄鏈接,會在新窗口打開登錄頁面,但是賬號登錄的鏈接定位失敗。

image.png
image.png

報錯日志如下:


image.png

問題分析

賬號登錄的鏈接在新打開的窗口里面,需要切換到新打開的窗口,代碼如下:

# 切換到新打開的窗口
self.driver.switch_to.window(self.driver.window_handles[-1])

注意:切換到新窗口前先顯式等待(比如等待2秒),否則就會報錯(元素定位失?。?/strong>

image.png

csdn_login.gif

完整代碼

# -*- coding: utf-8 -*-


from selenium.webdriver import *
from time import *
import unittest
from parameterized import parameterized
import sys

reload(sys)
sys.setdefaultencoding('utf-8')


class LoginTest(unittest.TestCase):
    """
    測試類
    """
    driver = None

    @parameterized.expand([
        ("https://www.csdn.net/", "admin", "123456")
    ])
    def test_login(self, url, username, password):
        """
        測試
        :param url:
        :param username:
        :param password:
        :return:
        """
        # 最大化窗口
        self.driver.maximize_window()
        # 設置默認的等待時長
        self.driver.implicitly_wait(15)
        # 打開網頁
        self.driver.get(url)
        # 點擊
        self.driver.find_element_by_link_text("登錄").click()
        #
        sleep(2)
        # 切換到新打開的窗口
        self.driver.switch_to.window(self.driver.window_handles[-1])
        #
        self.driver.find_element_by_link_text("賬號登錄").click()
        #
        self.driver.find_element_by_id("all").send_keys(username)
        #
        self.driver.find_element_by_id("password-number").send_keys(password)
        self.driver.find_element_by_class_name("btn-primary").click()
        sleep(3)

    @classmethod
    def setUpClass(cls):
        # 創(chuàng)建驅動工具
        cls.driver = Firefox()

    @classmethod
    def tearDownClass(cls):
        # 關閉瀏覽器
        cls.driver.quit()


if __name__ == "__main__":
    # verbosity表示測試日志的詳細級別
    unittest.main(verbosity=2)

參考資料

[01] selenium之 定位以及切換frame(iframe)
https://blog.csdn.net/huilan_same/article/details/52200586
[02] selenium之 切換窗口、frame、alert
https://blog.csdn.net/Rao_Juan/article/details/85554482

微信掃一掃關注該公眾號【測試開發(fā)者部落】

image.png

點擊鏈接加入群聊【軟件測試學習交流群】
https://jq.qq.com/?_wv=1027&k=5eVEhfN
軟件測試學習交流QQ群號:511619105

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容