我只是想知道是否有更可靠的方法来等待元素,或者它只是一个顽固的页面。我对Python Selenium还相当陌生,但是我注意到没有下面的Sleep wait https://casino.bovada.lv/(现在变灰)命令Selenium会单击Poker选项卡,然后在页面正确加载之前它会单击horse的选项卡,而这次单击什么也不做。我可以使用sleep wait命令,但有点违背了等待元素出现的目的。你知道吗
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException
driver = webdriver.Chrome(executable_path=r'C:\Brother\chromedriver.exe')
driver.set_window_size(1024, 600)
driver.maximize_window()
driver.get("https://sports.bovada.lv/soccer")
time.sleep( 4 )
element = WebDriverWait(driver, 20000).until(
EC.element_to_be_clickable((By.CSS_SELECTOR, "#ui-app-primary-menu > a.primary-menu_item.channel-poker.channel.channel-poker.ng-isolate-scope > span")));
element.click();
driver.get("https://casino.bovada.lv/")
#time.sleep( 4 )
element = WebDriverWait(driver, 20000).until(
EC.element_to_be_clickable((By.CSS_SELECTOR, "#ui-app-primary-menu > a.primary-menu_item.channel-horses.channel.channel-horses > span")));
element.click();
time.sleep( 15 )
###
driver.close()
我也试过了
WebDriverWait(driver, 2222).until(EC.presence_of_element_located((By.CSS_SELECTOR, '#ui-app-primary-menu > a.primary-menu_item.channel-poker.channel.channel-poker.ng-isolate-scope > span'))).click();
WebDriverWait(driver, 2222).until(EC.presence_of_element_located((By.CSS_SELECTOR, '#ui-app-primary-menu > a.primary-menu_item.channel-horses.channel.channel-horses > span'))).click();
我想展示递归等待算法,我喜欢在类似的情况下使用它:
这将等待元素3000秒,但check is元素每5秒出现一次。另外,您可以在try块中等待许多元素。你知道吗
相关问题 更多 >
编程相关推荐