«Подозреваемое» странное поведение при выводе Selenium с использованием Python - PullRequest
0 голосов
/ 28 ноября 2018

Добрый день, я запускаю следующий фрагмент и нахожу следующее поведение, которое, я не уверен, правильно ли это:

for url in links:
        driver.get(url)
        date = driver.find_elements_by_xpath("""//*[contains(@id, 'node')]/div[1]/div[1]/div[2]/div/span""")
        secref1 = driver.find_elements_by_xpath("""/html/body/div[3]/div/section/div[2]/div/section/div/section/div/article/div[1]/div[3]/div[2]/div""")
        secref2 = driver.find_elements_by_xpath("""/html/body/div[3]/div/section/div[2]/div/section/div/section/div/article/div[1]/div[4]/div[2]/div""")

        if not secref2:
            secref2.append("Null")
        else:
            secref2 = secref2

        num_page_items = len(date)

        for i in range(num_page_items):
            print secref2

driver.close()

Я ожидаю, что "secretf2" отсутствует на веб-странице,следовательно, при выполнении сценария IF / ELSE.

мои выходные данные выглядят следующим образом:

DevTools listening on ws://127.0.0.1:64592/devtools/browser/da7ab0e6-e0e9-4edb-963a-913b38c6f4dd
['Null']
[<selenium.webdriver.remote.webelement.WebElement (session="a7bc63bef087357d1510c3b28ec8db87", element="0.14518628426304736-4")>]
[<selenium.webdriver.remote.webelement.WebElement (session="a7bc63bef087357d1510c3b28ec8db87", element="0.6063690703515521-4")>]
[<selenium.webdriver.remote.webelement.WebElement (session="a7bc63bef087357d1510c3b28ec8db87", element="0.16122194044687665-7")>]
[<selenium.webdriver.remote.webelement.WebElement (session="a7bc63bef087357d1510c3b28ec8db87", element="0.7547639796767653-4")>]
[<selenium.webdriver.remote.webelement.WebElement (session="a7bc63bef087357d1510c3b28ec8db87", element="0.768240568661338-16")>]
[<selenium.webdriver.remote.webelement.WebElement (session="a7bc63bef087357d1510c3b28ec8db87", element="0.3077014556092601-4")>]
[<selenium.webdriver.remote.webelement.WebElement (session="a7bc63bef087357d1510c3b28ec8db87", element="0.9689075758046188-4")>]
[<selenium.webdriver.remote.webelement.WebElement (session="a7bc63bef087357d1510c3b28ec8db87", element="0.09545508090332766-4")>]
[<selenium.webdriver.remote.webelement.WebElement (session="a7bc63bef087357d1510c3b28ec8db87", element="0.068763767350847-4")>]

Я вижу первый «Null», однако последующие записи выглядят как своего рода выходные данные.

Если я попытаюсь:

        for i in range(num_page_items):
        print secref2[i].text

Я получу следующую ошибку:

DevTools listening on ws://127.0.0.1:64788/devtools/browser/df696310-30cf-4833-89fa-fac28e6b3bb0
Traceback (most recent call last):
  File "test.py", line 54, in <module>
    print secref2[i].text
AttributeError: 'str' object has no attribute 'text'

Любая помощь с этим будет оценена.

1 Ответ

0 голосов
/ 28 ноября 2018

Вы повторяете дважды.Итак, в первом URL вы получите Null.В последующих URL вы получите список webelements.Вы не можете напечатать secref2[i].text, потому что в первый раз вы нажмете «Null», а «Null» будет str.

. Вы хотели присвоить что-то еще переменной здесь?Я не знаю, почему вы бы присвоили эту переменную себе.

else:
    secref2 = secref2
...