Я открываю веб-страницу, чтобы получить имена кластера1 (p1, p2). Я не уверен, сколько раз мне нужно открывать веб-страницу, чтобы получить эти имена cluster1. Итак, я использую цикл while, он удалит p1 или p2, в зависимости от того, какое значение получено с веб-страницы.
Когда я открою веб-страницу, я получу p1 или p2, и это значение будет сохранено в новом [-1]. Если это значение находится в cluster1, оно выполнит другие тестовые функции, и это значение будет удалено из cluster1.
new = ['some', 'list' 'items', 'p1'] # last element of list is either p1 or p2. So, new[-1] will give p1 or p2.
cluster1 =[ 'p1', 'p2']
while len(cluster1) != 0:
print("Length of cluster1 before:", len(cluster1))
# for i in range(10):
if new[-1] in cluster1:
print(new[-1] + " is in cluster1.")
test1()
test2()
new_ver_names.append(new[-1])
cluster1.remove(new[-1])
print("Length of cluster1 after:", len(cluster1))
else:
print(new[-1] + " portal version is not listed.")
driver.quit()
break
Мое исключение заключается в том, что при удалении значения элемент управления должен вернуться к циклу while и начать снова, пока len (cluster1) не станет 0. И, если значение не находится в cluster1, должно выполняться другое значение past. Но когда я удаляю cluster1.remove(new[-1])
, остальная часть также выполняется.
Я проверил другие ответы, в которых упоминается, что мы не можем удалить элементы из списка во время итерации по нему, и попытался понять список. Но не смог заставить его работать.
Я пытался lst = [(teset1(), test2()) for i in range(len(cluster1)) if new[-1] in cluster1]
Любая помощь очень ценится.
Спасибо.
Edit:
def login1():
ChromeDriver = 'C:\\PortalTesting\\Drivers\\chromedriver.exe'
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument("--incognito")
chrome_options.add_argument("--window-size=1920x1080")
driver = webdriver.Chrome(executable_path=ChromeDriver, chrome_options=chrome_options)
driver.maximize_window()
driver.implicitly_wait(130)
driver.get("MY_URL")
print("session id ", driver.session_id)
username = driver.find_element_by_css_selector("#uid")
username.send_keys("username")
password = driver.find_element_by_css_selector("#pid")
password.send_keys("password")
login_button = driver.find_element_by_class_name("secondarybtnlabel")
login_button.click()
# time.sleep(10)
cluster1 = ['p1', 'p2']
dc_elm = driver.find_element_by_xpath('/html/body/div[4]/div/div[2]/span[2]').text
new = unicodedata.normalize('NFKD', dc_elm).encode('ascii', 'ignore').split()
print("Portal version: ", new[-1])
logout_btn = driver.find_element_by_xpath('/html/body/div[4]/div[2]/div/div[4]/div/div[2]/div/header/div[2]/table/tbody/tr/td[3]/div/li')
logout_btn.click()
driver.delete_all_cookies()
print("Clearing cookies")
new_ver_names = []
time.sleep(3)
while len(cluster1) != 0:
print("Length of cluster1 before:", len(cluster1))
# for i in range(10):
if new[-1] in cluster1:
print(new[-1] + " is in cluster1.")
test1()
test2()
new_ver_names.append(new[-1])
# cluster1.remove(new[-1])
print("Length of cluster1 after:", len(cluster1))
else:
print(new[-1] + " portal version is not listed.")
driver.quit()
break
# cluster1.remove(new[-1])