NameError: name 'number' is not defined using css-selector as nth-child(n) with Selenium and Python
NameError: name 'number' is not defined using css-selector as nth-child(n) with Selenium and Python
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
作为enumerate
的一部分,1作为整数传递,您需要使用str()
将其转换为字符串,如下所示:
name = self.driver_web_browser.find_elements_by_css_selector("{}:nth-child({})".format( basecss, str(index)))
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
作为enumerate
的一部分,1作为整数传递,您需要使用str()
将其转换为字符串,如下所示:
name = self.driver_web_browser.find_elements_by_css_selector("{}:nth-child({})".format( basecss, str(index)))