[英]( Beginner ) If variable selenium on python
我是編碼新手,正在嘗試通過 Selenium 學習網頁自動化。
到目前為止,我已經設法打開一個網頁,讓它點擊我想要點擊的地方並輸入我想要的任何單詞。 但是,我正在為 if 變量而苦苦掙扎。
基本上我想告訴 Selenium 單擊我通過 xpath 找到的按鈕。反過來,這個按鈕應該在屏幕上顯示一個新元素,我也可以通過 xpath 找到它。但是,有時當我單擊這個按鈕時,新元素不會展示。 那么如何告訴Selenium,如果元素不顯示,它應該刷新頁面並點擊直到顯示新元素,然后才能點擊新元素?
代碼:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import NoSuchElementException
driver = webdriver.Firefox()
url = "https://www.compumsa.eu/item/GV-R55XTOC-4GD-Gigabyte-Radeon-RX-5500-XT-4GB-OC-PCIE-9320"
driver.get(url)
driver.maximize_window()
click = driver.find_element_by_xpath('//*[@id="ContentPlaceHolderMain_LBAddItem"]')
click.click()
itempanier = driver.find_element_by_xpath('//*[@id="SpanCaddy"]')
if (itempanier.is_displayed()
try - except
find_elements
,基本上find_elements
將在Selenium-Python
中返回一個列表並檢查它的大小,如果>0
元素將可見,如果不可見,go 否則阻止並重新加載頁面,這將重復直到它從 while 循環中中斷。僅在兩個條件下中斷:
代碼:
driver = webdriver.Chrome(driver_path)
driver.maximize_window()
driver.implicitly_wait(30)
wait = WebDriverWait(driver, 30)
driver.get("https://www.compumsa.eu/item/GV-R55XTOC-4GD-Gigabyte-Radeon-RX-5500-XT-4GB-OC-PCIE-9320")
click = wait.until(EC.element_to_be_clickable((By.ID, "ContentPlaceHolderMain_LBAddItem")))
click.click()
while True:
try:
itempanier = driver.find_elements_by_xpath('//*[@id="SpanCaddy"]')
if len(itempanier) > 0:
print('Meaning SpanCaddy web element is visible')
# do some stuff like clicking on it and then break from the loop.
#break
else:
print('Meaning SpanCaddy web element is not visible')
# do some other stuff like reload
driver.refresh()
except:
print('Something went wrong')
pass
break
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.