密码登录框定位

来源:6-11 框架设计PO完整封装

qq_雪飘人间_1

2023-03-22

老师,这个登录页面需要先点击“密码登录”,不能用driver.find_element(By.LINK_TEXT,“密码登录”).click()吗?
图片描述

写回答

2回答

零环

2023-11-16

新版豆瓣登录框改成iframe里面了,账号密码的id也改了,可以用下面这段:

from selenium.webdriver.common.by import By

from part6.po.pages.base_page import BasePage


class LoginPage(BasePage):
    URL = "https://www.douban.com/"
    USERNAME = (By.ID, "username")
    PASSWORD = (By.ID, "password")
    LABEL = (By.XPATH, "//li[text()='密码登录']")
    IFRAME = (By.XPATH, "//div[@class='login']/iframe")

    def __init__(self, driver):
        super().__init__(driver=driver, url=self.URL)

    def login(self):
        self.open()
        # *是一个元组的list
        self.switch_2_iframe(webElement=self.find_element(*self.IFRAME))
        self.click(webElement=self.find_element(*self.LABEL))
        self.send_keys(webElement=self.find_element(*self.USERNAME), keys="aa")
        self.send_keys(webElement=self.find_element(*self.PASSWORD), keys="bb")

base_page.py里增加:

def switch_2_iframe(self, webElement):
    self._driver.switch_to.frame(webElement)

def click(self, webElement):
    webElement.click()
0
0

大周

2023-04-12

这个用不了,因为li标签不是链接标签。  

0
0

一课讲解测试面试 百度资深工程师亲授

为你梳理测试面试技术重难点,掌握一线互联网公司跳槽涨薪技巧。

1322 学习 · 161 问题

查看课程