[英]( 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.