Невозможно объединить целое число с xpath и не может его найти - PullRequest
0 голосов
/ 04 октября 2018
for i in range (1,6):
   col = driver.find_elements_by_tag_name("td")

  for j in range (1,7):
     xpath_string = ('/html/body/div[3]/ul/li[1]/div/div[1]/table/tbody/**tr[{0}]**/**td[{1}]**'.format(str(j), str(i)))
     day = driver.find_element_by_xpath(xpath_string)
     B = day.text
     print(B)

     if (Date == B):
        path_string = ('/html/body/div[3]/ul/li[1]/div/div[1]/table/tbody/**tr[{0}]**/**td[{1}]**'.format(str(j), str(i)))
        say = driver.find_element_by_xpath(path_string)
        say.click()
        break

Ошибка типа:

Не удалось выполнить «оценку» для «Документа»: результат не является набором узлов и поэтому не может быть преобразован в требуемыйtype.

Это ошибка такого типа, поэтому, пожалуйста, помогите мне в ее решении.

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Какова цель ** в вашем xpath, они не являются допустимым выражением xpath.Следующая строка кода должна быть изменена, как показано ниже:

xpath_string = '/html/body/div[3]/ul/li[1]/div/div[1]/table/tbody/tr[{0}]/td[{1}]'
               .format(j,i)



path_string = '/html/body/div[3]/ul/li[1]/div/div[1]/table/tbody/tr[{0}]/td[{1}]'
              .format(j,i)
0 голосов
/ 05 октября 2018

Вы пытались передать xpath непосредственно в driver.find_element_by_xpath () вместо того, чтобы сначала форматировать его как строку?

Я предполагаю, что это будет выглядеть примерно так:

    day = driver.find_element_by_xpath('/html/body/div[3]/ul/li[1]/div/div[1]/table/tbody/tr[{0}]/td[{1}]')
...