作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在以下网站上练习一些 Selenium:
www.automationpractice.com
我在下面开始了一些基本测试:
import unittest
from webdriver import Driver
from values import strings
from pageobjects.homescreen import Homescreen
class TestHomeScreen(unittest.TestCase):
@classmethod
def setUp(self):
self.driver = Driver()
self.driver.navigate(strings.base_url)
def test_home_screen_components(self):
home_screen = Homescreen(self.driver)
home_screen.logo_present()
def test_choose_dress(self):
home_screen = Homescreen(self.driver)
home_screen.choose_dress()
@classmethod
def tearDown(self):
self.driver.instance.quit()
这些测试是从以下内容中读取的:
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from values import strings
class Homescreen:
def __init__(self, driver):
self.driver = driver
def logo_present(self):
self.logo = WebDriverWait(self.driver.instance, 10).until(
EC.visibility_of_element_located((
By.ID, "header_logo")))
assert self.logo.is_displayed()
def choose_dress(self):
self.dresses = WebDriverWait(self.driver.instance, 5).until(
EC.visibility_of_element_located((
By.XPATH, '//*[@id="block_top_menu"]/ul/li[2]/a')))
self.dresses.click()
self.casual_dresses = WebDriverWait(self.driver.instance, 10).until(
EC.visibility_of_element_located((
By.XPATH,'//input[@type="checkbox" and @id="layered_category_9"]')))
test_home_screen_components 通过良好,但 test_choose_dress 失败。我已经缩小了范围,它在最终的 XPATH 上失败了,这是一个“休闲服装”的复选框。找不到它。我已在 Chrome 中确认此 XPATH 有效:
self.casual_dresses = WebDriverWait(self.driver.instance, 10).until(
EC.visibility_of_element_located((
By.XPATH,'//input[@type="checkbox" and @id="layered_category_9"]')))
在下一页: http://automationpractice.com/index.php?id_category=8&controller=category#/categories-casual_dresses
所以我不确定问题是什么。也许我遗漏了一些东西,因为它是嵌入的?
而且我知道我最终也需要在我的代码中添加一些 Try/Except,我才刚刚开始使用这些东西。
最佳答案
直接替换即可
EC.visibility_of_element_located
与
EC.presence_of_element_located
能够处理所需的复选框
关于python - 难以缩小复选框的 XPath 范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50636109/
我想模拟这个函数: function getMetaData(key) { var deferred = $q.defer(); var s3 = vm.ini
我是一名优秀的程序员,十分优秀!