在某些使用python的wepage上找不到selenium的任何元素

2024-04-19 11:08:08 发布

您现在位置:Python中文网/ 问答频道 /正文

试图建立一些机器人刮一个网页,不能访问这个网页上的任何方法,我知道的元素。你知道吗

我做错什么了?:)

尝试用所有find\u elemenet\u获取此元素。。。什么都没有。你知道吗

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait as wait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys

url = 'https://www.elal.com/he/Pages/Bid2Fly.aspx#bidflyer/auctions/'
driver = webdriver.Chrome
driver.get(url)
wait(driver, 20).until(EC.presence_of_element_located((By.CSS_SELECTOR, "a.bid-button")))

print(driver.find_elements_by_class_name("half").text)

尝试获取链接作为开始,然后搜寻数据。你知道吗


Tags: fromimport元素网页supportbyasdriver
2条回答

您是否尝试过将元素存储在变量中?你知道吗

像-var=driver.find_elements_by_class_name("div.half")

我认为如果类名如您所描述的那样,并且不是复合的,就应该这样做。你知道吗

  1. 您尝试自动化的网站的所有内容都在iframes中,因此您需要调用WebDriver.switch_to()函数,以便在尝试定位元素之前将上下文更改为所需的iframe

    enter image description here

    driver.switch_to.frame("frame")
    
  2. WebDriver.find_elements_by_classname返回List个web元素,而且这些元素没有文本属性,因此您应该:

    示例代码(为了更好的可读性和性能,我将CSS定位器改为XPath

    url = 'https://www.elal.com/he/Pages/Bid2Fly.aspx#bidflyer/auctions/'
    driver.get(url)
    driver.switch_to.frame("frame")
    wait(driver, 20).until(EC.presence_of_element_located((By.CSS_SELECTOR, "a.bid-button")))
    for element in driver.find_elements_by_xpath("//div[@class='half']"):
        print(element.get_attribute("innerText"))
    
    driver.quit()
    

    enter image description here

相关问题 更多 >