Я кое-что копал последние несколько дней, но нигде не могу найти этот ответ. Ближе всего к ответу я подошел: здесь и еще несколько вопросов и веб-сайтов, на которых говорилось об использовании словарей и ключей. Я просто не мог понять, как применить это к моей ситуации.
Я ищу способ определить значение ключа словаря на основе определенных условий. Так делать не обязательно. Вот как я пытаюсь это сделать. Я готов поступить иначе. У меня есть несколько объектов на веб-странице, которые мне нужно проверить, но расположение этих объектов, а также их значения могут зависеть от версии платформы. Так, например ...
находится в modem.py:
modem_locators = {
'serial_port_txt': ["By.XPATH", "//fieldset[2]/legend", "Serial Port"],
}
находится в test_file.py:
.
.
from modem import modem_locators
.
.
assertExpectedConditionTrue(driver, modem_locators.get('serial_port_txt')[0], modem_locators.get('serial_port_txt')[1], modem_locators.get('serial_port_txt'[2])
... проверяет, что «Последовательный порт» существует в расположении XPATH «// fieldset [2] / legend». Я хотел бы определить 'serial_port_txt' следующим образом:
ПРЕДУПРЕЖДЕНИЕ - КОД ПСЕВДО!
modem_locators = {
if glob_var.platform == "A" or glob_var.platform == "B":
'serial_port_txt': ["By.XPATH", "//fieldset[2]/legend", "Serial Ports"],
elif glob_var.plaform == "C":
'serial_port_txt': ["By.XPATH", "//fieldset[1]/legend", "Serial Ports"],
else:
'serial_port_txt': ["By.XPATH", "//fieldset[1]/legend", "Serial Port"],
'ip_addr': ["By.ID", "ip_address"]
'enable_checkbox': ["By.ID", "my_checkbox"],
}
Переменная «платформа» определяется заранее. Это можно сделать? Я открыт для создания переменной на основе платформы, для которой она c указана, но подумал, что сначала посмотрю, возможно ли это.
Кроме того, есть ли способ избавиться от 'get () ', или я в значительной степени застрял в нем, если собираюсь использовать словарь? Спасибо!