密码登录框定位
来源: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()
00 -
大周
2023-04-12
这个用不了,因为li标签不是链接标签。
00
相似问题