【问题标题】:NameError: name 'number' is not defined using css-selector as nth-child(n) with Selenium and PythonNameError: name 'number' is not defined using css-selector as nth-child(n) with Selenium and Python
【发布时间】:2021-01-03 15:51:49
【问题描述】:
click = self.driver_web_browser.find_element_by_css_selector('#ctl00_ContentPlaceHolder1_Estadocombo > option:nth-child('+ index +').click()

错误:

click = self.driver_web_browser.find_element_by_css_selector('#ctl00_ContentPlaceHolder1_Estadocombo > option:nth-child('+ index +')').click()
NameError: name 'number' is not defined

如果我在 nth-child(46) 中输入一个非动态值,它可以正常工作。

但是 id 喜欢放 nth-child(index)

代码试验:

basecss = '#ctl00_ContentPlaceHolder1_Estadocombo > option'
events = self.driver_web_browser.find_elements_by_css_selector(basecss)


for index, val in enumerate(events, 1):
    name = self.driver_web_browser.find_elements_by_css_selector("{}:nth-child({})".format( basecss,index))

    print(index,val.text)

    if self.state == val.text:
        #event = self.driver_web_browser.find_element_by_css_selector(basecss + ("{}:nth-child({})").click())
        click = self.driver_web_browser.find_element_by_css_selector('#ctl00_ContentPlaceHolder1_Estadocombo > option:nth-child('+ index +')').click()
        print(type(click))
        break 

【问题讨论】:

    标签: python-3.x selenium selenium-webdriver css-selectors webdriver


    【解决方案1】:

    作为enumerate 的一部分,1 作为整数传递,您需要使用str() 将其转换为字符串,如下所示:

    name = self.driver_web_browser.find_elements_by_css_selector("{}:nth-child({})".format( basecss, str(index)))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 2022-12-02
      • 1970-01-01
      • 2023-01-02
      • 1970-01-01
      • 2013-04-09
      • 1970-01-01
      相关资源
      最近更新 更多