尝试在python中的元素中查找id

2024-04-23 15:25:16 发布

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

我需要帮助

我正在打印一个网站的链接, 代码如下所示:

<div class="tabla_szoveg">
            <div style="cursor:pointer" onclick="konyvjelzo('1523442');" class="torrent_konyvjelzo2"></div>

我正在打印“konyvjelzo('1523442');”里面的数字

使用硒

也尝试过:

linkgettr= driver.find_element_by_class("box_torrent_all")

但一个也得不到 谢谢


Tags: 代码div网站链接style数字torrentcursor
3条回答

我想你可以用简单的正则表达式很容易找到这个

ids = re.findall("onclick=\"konyvjelzo\('(.*?)'\);",page_text)

要打印onclick事件的部分,即1523442必须为所需的visibility_of_element_located()诱导WebDriverWait,并且可以使用以下解决方案:

  • 使用CSS_SELECTOR

    print(WebDriverWait(browser, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.tabla_szoveg>div.torrent_konyvjelzo2"))).get_attribute("onclick").split("'")[1])
    
  • 使用XPATH

    print(WebDriverWait(browser, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[class='tabla_szoveg']/div[@class='torrent_konyvjelzo2']"))).get_attribute("onclick").split("'")[1])
    

请检查torrent_konyvjelzo2是否是动态的,如果不是,那么您也可以用它替换下面的torrent文本,否则您可以按原样使用下面的代码。你知道吗

split(“”)[1]用于分割konyvjelzo('1523442');文本

konyvjelzo(  > item 0
1523442      > item 1
);           > item 2

第一个项目索引从0开始。所以我们可以退1件。你知道吗

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


element = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.XPATH, "//div[contains(@class, 'torrent')]")))
attribute=element.get_attribute("onclick")
print attribute.split("'")[1] 

相关问题 更多 >