Аргумент типа 'int' не повторяется. Проблема - PullRequest
0 голосов
/ 25 января 2020

Я пытаюсь выбрать случайные целые числа из значения, например: 1: 32 будет входом, я разделю на : и затем выберу случайное ценность. Затем Selenium выберет выпадающий список в зависимости от того, какое значение возвращается.

Мой код:

# SELECT
if register_parts[3] == "SELECT":
    if register_parts[0] + '="' + register_parts[1] + '"' in self.driver.page_source:
        _select_value = ""
        if ":" in register_parts[2]:
            _select_value = self.get_random_value_between(register_parts[2]) 
            _select = Select(selenium_action)
            _select.select_by_visible_text(_select_value)
            self.write_to_debug_file("self.select_by_visible_text(" + _select_value + ") --> SELECT --> [ " + _select_value + " ]")
        else: 
            _select_value = register_parts[2]
            _select = Select(selenium_action)
            _select.select_by_visible_text(_select_value)
            self.write_to_debug_file("self.select_by_visible_text(" + _select_value + ") --> SELECT --> [ " + _select_value + " ]")

Дополнительная функция:

def get_random_value_between(self, input_values):
    ''' this function will return a random value between: x:x or 1:31 for example ... '''
    parts = input_values.split(':')
    return random.randrange(int(parts[0]), int(parts[1]))

Проблема в этой строке:

_select.select_by_visible_text(_select_value)

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

argument of type 'int' is not iterable

После прочтения я думаю проблема заключается в том, что я делаю:

if ":" in

Я могу ошибаться. Я не уверен, как это исправить. Любая помощь по этому вопросу будет принята с благодарностью. Насколько я вижу, код должен работать, но я должен что-то упустить. Я прочитал несколько веток здесь об ошибке, но она все еще не полностью исчезла.

Ответы [ 2 ]

2 голосов
/ 25 января 2020

Если возможно, приведите _select_value в качестве строки перед использованием _select.select_by_visible_text.

и переделайте в значения int после итерации.

1 голос
/ 25 января 2020

Я думаю, что это правильно. Если ошибка на if, а не на else, то вы передаете Int в качестве аргумента методу, которому требуется значение text / str.

Просто попробуйте следующую строку:

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