Отправить случайное значение для элемента ввода, используя для цикла Selenium Python - PullRequest
0 голосов
/ 05 июля 2018

Итак, я тестирую калькулятор. И я ввожу числа с помощью веб-драйвера Каждый элемент имеет соответствующее текстовое значение. Я пытаюсь предоставить это значение селектору xpath

У меня есть генератор случайных чисел. Например, у нас есть номер 256. Теперь нужно отправить запрос 3 раза с «2», затем «5», а затем «6». Поэтому моя логика заключалась в том, чтобы создать список из числа и проходить по нему каждый раз, когда отправляю значение, соответствующее индексу списка. Не повезло с этим.

    def test_something(self):
    a = randint(0,9999)
    two_digits = map(int, str(a))
    def sum_list(a):
        for x in two_digits:
            a=x   
            self.driver.find_element_by_xpath("//input[@value={}]").format(a).click()


    sum_list(two_digits)

Итак, я попробовал пару вариантов, попытался отправить значение x в строку. Возвращено неверное выражение XPath. также пытался отправить его как элемент с определенным индексом

i = 0
("//input[@value={}]").format(two_digits[i])
i += 1

Пока не понял. Так что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 05 июля 2018

Здесь правильное решение. Сначала нужно создать список из случайного числа и просмотреть каждый номер (например, номера набора номера на телефоне)

a = randint(0,99999)
    # Put in a list random number for exaple 124 will be [1,2,4]
    list = [int(d) for d in str(a)]
    # Go through the list where number of iterations is equal to number of elements
    # Each iteration send value of this element to xpath
    for item in list:
        self.driver.find_element_by_xpath("//input[@value={0}]".format(item)).click()
0 голосов
/ 05 июля 2018

Как вы указали, проблема в xPath. //input[@value={}] не является допустимым xPath. Я думаю, что вы хотите что-то вроде //input[@value='a']. Попробуйте это:

self.driver.find_element_by_xpath("//input[@value='" + str(a) + "']").click()

скажем a = 5, затем:

//input[@value= '5'] является действительным xPath

PS: я не знаю, что делает .format(a). Убедитесь, что вам нужен этот метод.

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