为什么说是无法定位到元素?

博客展示了使用Python的unittest和Selenium进行登录测试的代码。通过定义测试类,在setUp和tearDown方法中进行初始化和清理,在test_login方法里使用Firefox浏览器查找‘安全退出’链接文本并进行断言,最后执行测试。

import unittest
from selenium import webdriver
from login import Login
class MyTestlogin(Login):
def setUp(self):
pass
def test_login(self):
driver = webdriver.Firefox()
value = driver.find_element_by_link_text(“安全退出”).text
self.assertEqual(value,‘安全退出’)
driver.quit()
def tearDown(self):
pass
if name == ‘main’:
unittest.main()

当在网页中通过元素的 selector 无法定位到 `<input>` 输入框时,可尝试以下解决办法: 1. **使用 XPath 定位**:XPath 可通过标签的各种属性来定位,等于是包含了 class name、name、id、link_text 这些定位的方法。例如在定位弹窗元素时,绝对路径定位失败,但使用父级标签的 XPath 定位成功,代码如下: ```python from selenium.webdriver.common.by import By from time import sleep # 点击启动弹窗 driver.find_element(By.CSS_SELECTOR, 'input[placeholder="选择结束时间"]').click() sleep(1) # 使用父级标签定位 -> 定位成功 driver.find_elements(By.XPATH, '//tbody/tr[6]/td[4]')[0].click() ``` 2. **检查元素加载情况**:确保元素已经完全加载到页面中。可使用 `sleep` 函数等待一段时间,或者使用显式等待机制确保元素可被定位。示例代码如下: ```python from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC driver = webdriver.Chrome() driver.get("https://example.com") try: # 显式等待输入框元素可被定位 input_box = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.CSS_SELECTOR, 'input[type="text"]')) ) input_box.send_keys("example text") finally: driver.quit() ``` 3. **检查元素是否在 iframe 中**:若元素位于 iframe 内,需先切换到该 iframe,再进行元素定位。示例代码如下: ```python from selenium import webdriver from selenium.webdriver.common.by import By driver = webdriver.Chrome() driver.get("https://example.com") # 切换到 iframe iframe = driver.find_element(By.ID, 'iframe_id') driver.switch_to.frame(iframe) # 在 iframe 内定位输入框 input_box = driver.find_element(By.CSS_SELECTOR, 'input[type="text"]') input_box.send_keys("example text") # 切回默认内容 driver.switch_to.default_content() driver.quit() ``` 4. **检查元素属性是否动态变化**:部分元素的属性可能会动态变化,如 class 名称、id 等。可尝试使用更稳定的属性或相对定位方式。例如,若 id 是动态生成的,可使用其他属性或父元素结合相对定位定位输入框。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

燙の灬愛!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值