我有一個測驗,它檢查頁面上的一個元素:如果元素 A 出現,test(function) 回傳 A 并運行另一個函式 A。如果元素 B 出現,test(function) 回傳 B 并運行另一個函式 B。如何我可以用 Python 做嗎?我想使用字典和類似“if”運算式的東西,但我很難想象,該怎么做。提前致謝!我沒有確切的代碼,就像這樣:/
from Pages import SearchHelper
def finding_pop(browser):
pop_click = SearchHelper(browser)
pop_click.go_to_site()
#element = finding_element_function.get_text()
return element
if element =='A':
#function test_A_click must be run
else:
#function test_B_click must be run
def test_A_click(browser):
pop_click = SearchHelper(browser)
pop_click.go_to_site()
logs = pop_click.setting_logs_raw('performance')
result = pop_click.for_logs(pop_click.log_filter, logs)
binded = pop_click.searching_params_in_logs_pops(result, 'bind_to')
ignored = pop_click.searching_params_in_logs_pops(result, 'ignore_to')
if binded == None and ignored == None:
handles, url, url1 = pop_click.opened_in_new_window()
assert handles > 1
assert url != url1
def test_B_click(browser):
pop_click = SearchHelper(browser)
pop_click.go_to_site()
logs = pop_click.setting_logs_raw('performance')
result = pop_click.for_logs(pop_click.log_filter, logs)
binded = pop_click.searching_params_in_logs_pops(result, 'bind_to')
ignored = pop_click.searching_params_in_logs_pops(result, 'ignore_to')
if binded == None and ignored == None:
handles, url, url1 = pop_click.opened_in_current_window()
print(url, url1)
assert handles > 1
assert url != url1
uj5u.com熱心網友回復:
請記住,該return陳述句應始終位于函式的末尾,因為在 return 陳述句中,函式結束并且函式的其他部分不再執行。所以在finding_pop你撰寫return element的函式中,這就是你的函式結束的地方。下面的if/else陳述句return element沒有被執行。
對于這種特殊情況,我認為您不需要在您的finding_pop函式中回傳 statemnet ,因為您的finding_pop函式正在回傳element,然后您在同一個函式中執行if/elseon 。element
您可以簡單地將您的finding_pop功能更改為:
def finding_pop(browser):
pop_click = SearchHelper(browser)
pop_click.go_to_site()
element = finding_element_function.get_text()
if element =="A":
test_A_click(browser)
elseif element =="B":
test_B_click(browser)
但是如果你真的需要一個 return 陳述句,那么你需要引入一個單獨的 runner 函式,它將 return offinding_pop作為輸入,然后執行if/else以選擇下一個要執行的函式。
所以它會是:
def finding_pop(browser):
pop_click = SearchHelper(browser)
pop_click.go_to_site()
element = finding_element_function.get_text()
return element
def chose_func_A_or_b(browser):
element = finding_pop(browser)
if element == "A":
test_A_click(browser)
if element == "B":
test_B_click(browser)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/436842.html
