gpt4 book ai didi

python - 难以缩小复选框的 XPath 范围

转载 作者:行者123 更新时间:2023-11-30 22:13:59 25 4
gpt4 key购买 nike

我正在以下网站上练习一些 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com