Python 与数据擦伤作斗争
使用Python Selenium。 我正试图把下表中的定价数据整理一下。到目前为止,我已经解决了如何循环使用大小选择器。但我不知道如何循环其他选择器(打印面等)。似乎没有任何东西具有唯一标识符 大小XpathPython 与数据擦伤作斗争,python,selenium,Python,Selenium,使用Python Selenium。 我正试图把下表中的定价数据整理一下。到目前为止,我已经解决了如何循环使用大小选择器。但我不知道如何循环其他选择器(打印面等)。似乎没有任何东西具有唯一标识符 大小Xpath //*[@id="options"]/div/a/span[2] 印刷面 //*[@id="options"]/div/a/span[2] 这是我用来循环使用Sizes选择器的代码 def nextSize(): global c global tablecounte
//*[@id="options"]/div/a/span[2]
印刷面
//*[@id="options"]/div/a/span[2]
这是我用来循环使用Sizes选择器的代码
def nextSize():
global c
global tablecounter
global cellnum
c = 2
global dropdownSize
dropdownSize = driver.find_elements_by_xpath('//*[@id="options"]/div/div/ul/li/ul/li/div')
for i in dropdownSize:
driver.implicitly_wait(10)
time.sleep(5)
tableExtractor()
c = str(c)
driver.find_element_by_xpath('/html/body/div[2]/div[1]/div[1]/div[1]/div[2]/form/div[3]/div/a/span[3]/b').click()
time.sleep(5)
op = '//*[@id="options"]/div/div/ul/li/ul/li[%s]/div' % c
try:
getSize = driver.find_element_by_xpath(op)
sizeName = getSize.get_attribute('innerHTML')
sizeName = sizeName.lstrip()
sizeName = sizeName.rstrip()
print sizeName
ws.cell(row=cellnum,column=1).value = sizeName
ws.cell(row=cellnum,column=2).value = sideName
cellnum += 1
except:
break
try:
driver.find_element_by_xpath(op).click()
c = int(c)
c += 1
except:
driver.find_element_by_xpath('/html/body/div[2]/div[1]/div[1]/div[1]/div[2]/form/div[3]/div/a/span[3]/b').click()
break
nextSize()
看起来这两个元素都可以通过以下XPath识别,因为它们具有不同的innerHTML:
//*[@class="select2-result-label ui-select-choices-row-inner" and text()[contains(., "Single Sided")]]
及
看起来这两个元素都可以通过以下XPath识别,因为它们具有不同的innerHTML:
//*[@class="select2-result-label ui-select-choices-row-inner" and text()[contains(., "Single Sided")]]
及
你面临的问题是什么?您是否遇到错误?抱歉,问题是我无法找到唯一的方法来标识第二个“选择器”下拉列表。公认的答案已经找到了一种方法。你面临的问题是什么?您是否遇到错误?抱歉,问题是我无法找到唯一的方法来标识第二个“选择器”下拉列表。被接受的答案已经找到了一种方法来做到这一点。这是有效的,我没有意识到我可以做到这一点。为了澄清,contains中的“.”发生了什么?这是我唯一不能理解的部分。它告诉xPath保持在当前节点,而不是指示文档根的eg
/
。这是有效的,我没有意识到我可以做到这一点。为了澄清,contains中的“.”发生了什么?这是我唯一不能理解的部分。它告诉xPath留在当前节点,而不是指示文档根的eg/
。