Веб-драйверу Python нужна помощь для проверки элемента «type ()», найденного для отображения обратной связи с пользователем. - PullRequest
0 голосов
/ 07 сентября 2018

Я пишу тест, используя селен вебдрайвер, используя Python.Я хотел бы знать, когда я сохраняю ссылку как переменную и проверяю ее с помощью type(), почему она возвращает false при использовании inspect.isclass ().соответствующий код:

salesForceLink = findCss(sel, "div.row:nth-child(1) > div:nth-child(1) > 
    div:nth-child(1) > div:nth-child(3) > a:nth-child(1)")

print(type(salesForceLink))

я получаю результаты,

<class 'selenium.webdriver.firefox.webelement.FirefoxWebElement'>

Затем я проверяю это с помощью,

print(inspect.isclass(salesForceLink))

это приводит к False

что мне не хватает?почему он возвращает false?

EDIT: В конечном итоге мне нужен оператор if, чтобы проверить, является ли переменная salesForceLink "чем-то".

Пример:

if "salesForceLink is something" == True
    print("Sales Force link found")
else:
    print("Sales force link not found")

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

Согласно моим Правкам, это то, что я нашел решением.

if isinstance(salesForceLink, object) == True:
        print("sales Force link found")
    else:
        print("sales force link not found")

Редактировать: Согласно первому комментарию, приведенному ниже, я обнаружил, что хотя утверждение соответствует истине, на самом деле я просто выполняю двойную работу. мое рабочее решение состоит из двух строк с использованием пользовательских функций. второй проверяет текст после перехода по ссылке.

findLink(sel, "div.row:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(3) > a:nth-child(1)", "sales force link")
verifyText(sel, ".freebirdFormviewerViewHeaderTitle" , "Salesforce Feedback")

Пользовательские функции для всех заинтересованных лиц следующие:

def findLink(browser, css, label="", type="link:", x=1):
if x == 0:
    if findCss(browser, css, type="link:"):
        link = findCss(browser, css)
        label  = element.text
        type = element.get_attribute('type')
        printDebug(type + ": \"" + label + "\" found")
        return link
    else:
        G.errors += 1
        G.log[G.errors] = G.page + "ERROR" + label + " not found"
        #print("ERROR" + label + " not found")
elif x == 1:
    if findCss(browser, css):
        element = findCss(browser, css)
        label  = element.text
        type = element.get_attribute('type')
        element.click()
        printDebug(type + ": \"" + label + "\" found")
    else:
        G.errors += 1
        G.log[G.errors] = G.page + "ERROR" + label + " not found"

else:
    printDebug("Last flag must be 0 or 1, 0 is default")

и

def verifyText(browser, css, textToCheck=""):
    if findCss(browser, css):
        element = findCss(browser, css)
        elementText = element.text
    else:
        G.errors += 1
        G.log[G.errors] = G.page + "ERROR text: Could not find element"

    if textToCheck == "" and elementText != textToCheck:
        printDebug('text: "' + elementText + '" element Not Empty ' )
        return str(elementText)

    elif textToCheck == "" and elementText == textToCheck:
        printDebug("text: Element Empty")    

    elif elementText == textToCheck:
        printDebug('text: "' + elementText + '" found')
        return str(elementText)

    elif elementText != textToCheck:
        G.errors += 1
        G.log[G.errors] = G.page + ' ERROR text: "' + textToCheck + '" does not match "' + elementText + '"'

    else:
        G.errors += 1
        G.log[G.errors] = G.page + "ERROR text: Unexpected Text Search Error"

Функция отладки печати просто принимает значение bool и печатает значение true или false. Все переменные, которые выглядят как G.error или G.debug, являются глобальными переменными-посредниками, которые хранятся в пустом классе для использования во многих тестах, которые у меня есть.

Надеюсь, это поможет.

0 голосов
/ 07 сентября 2018

Я человек. Человек - это вид.

>>> species(me)
<species 'homo.sapiens.sapiens'>

Это не значит, что я - вид.


salesForceLink - это FirefoxWebElement. FirefoxWebElement это класс.

>>> type(salesForceLink)
<class 'selenium.webdriver.firefox.webelement.FirefoxWebElement'>

Это не значит, salesForceLink это класс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...