首页 > 解决方案 > 如何在使用 Selenium Webdriver 查找元素时正确使用 '{}'.format()

问题描述

我正在编写一个使用 name_parameter 在网站内搜索的函数,但我确定我拼错了一些东西,我无法通过输入获得正确的按钮。我知道 XPATH 具有正确的结构,因为如果我对 page_name 进行硬编码,那么我会得到预期的结果

def change_user(self, page_name):
    select_user = WebDriverWait(self.driver, 4).until(
                EC.element_to_be_clickable((
                    By.XPATH, f'//div/div/div/span[contains(text(), {0} )]'.format(page_name)))
            )
            time.sleep(random.uniform(0.15, 0.5))
    select_user.click()

此函数的硬编码实际工作版本如下:

def change_user(self, page_name):
        select_user = WebDriverWait(self.driver, 4).until(
                    EC.element_to_be_clickable((
                        By.XPATH, f'//div/div/div/span[contains(text(), "Carl Rogers" )]'))
                )
                time.sleep(random.uniform(0.15, 0.5))
        select_user.click()

我将此参考用于语法https://www.w3schools.com/python/ref_string_format.asp

标签: pythonseleniumselenium-webdriversyntax

解决方案


尝试类似的东西

path = r'//div/div/div/span[contains(text(), "{}" )]'.format('test')

推荐阅读