簡體   English   中英

使用 selenium python 時如何單擊鏈接

[英]How do i click on the link while using selenium python

我是 python 和 selenium 的新手。 這是網頁即時試圖刮掉頁面的HTML片段這個我想刮的基礎上, data-attr1在HTML代碼段中給出。 請分享一些代碼以找到此鏈接並單擊它。

<a class="js-track-click challenge-list-item" data-analytics="ChallengeListChallengeName" data-js-track="Challenge-Title" data-attr1="grading" data-attr3="code" data-attr4="true" data-attr5="true" data-attr7="10" data-attr-10="0.9" data-attr11="false" href="/challenges/grading"><div class="single-item challenges-list-view-v2 first-challenge cursor"><div id="contest-challenges-problem" class="individual-challenge-card-v2 content--list-v2 track_content"><div class="content--list_body"><header class="content--list_header-v2"><div class="challenge-name-details "><div class="pull-left inline-block"><h4 class="challengecard-title">Grading Students<div class="card-details pmT"><span class="difficulty easy detail-item">Easy</span><span class="max-score detail-item">Max Score: 10</span><span class="success-ratio detail-item">Success Rate: 96.59%</span></div></h4></div></div><span class="bookmark-cta"><button class="ui-btn ui-btn-normal ui-btn-plain star-button" tabindex="0" aria-label="Add bookmark"><div class="ui-content align-icon-right"><span class="ui-text"><i class="js-bookmark star-icon ui-icon-star"></i></span></div></button></span><div class="cta-container"><div class="ctas"><div class="challenge-submit-btn"><button class="ui-btn ui-btn-normal primary-cta ui-btn-line-primary" tabindex="0"><div class="ui-content align-icon-right has-icon"><span class="ui-text">Solved</span><i class="ui-icon-check-circle ui-btn-icon"></i></div></button></div></div></div></header></div></div><div class="__react_component_tooltip place-top type-dark " data-id="tooltip"></div></div></a>

如果頁面加載速度不如預期,您可以嘗試:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//a[@data-attr1='grading']"))).click()

您可以使用 xpath 單擊元素:

element = driver.find_element_by_xpath("//a[@data-attr1='grading']")
element.click();

由於沒有直接可用的name idclass ,您可以使用xpath 您要查找的元素在divclass challenges-list ,您想單擊其中的第一個鏈接。 你可以使用這個xpath

//a[@data-attr1='grading']

點擊你可以做

driver.find_element_by_xpath("//a[@data-attr1='grading']").click()

對 Actionchains 使用雙擊,因為單擊在 Python 中可能不起作用。

例如。

from selenium.webdriver import ActionChains
# Get the element however you want
element = driver.find_element_by_xpath("//a[@data-attr1='grading']")
ActionChains(driver).double_click(settings_icon).perform()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM