今天我需要另一個(gè)提示。 我正在嘗試構(gòu)建 Python/Selenium 代碼,想法是單擊 www.thewebsiteIwantoclickon 下面是我正在處理的 HTML 示例。
類 entity-result__title-text 在 HTML 中重復(fù)多次,因此我想為每個(gè)類 entity-result__title-text 單擊元素 href= 打開(kāi)網(wǎng)站 www.thewebsiteIwantoclickon 執(zhí)行一些操作(我在單獨(dú)的代碼中)并返回到之前的 HTML 并重復(fù)相同的過(guò)程,直到最后一個(gè)類實(shí)體-結(jié)果__標(biāo)題文本
<span class="entity-result__title-text t-16"> <a class="app-aware-link " href="https://www.thewebsiteIwantoclickon" data- test-app-aware-link=""> <span dir="ltr"><span aria-hidden="true"><!---->Mi Name<!----></span><span class="visually-hidden"><!---->See something<!----></span></span> </a> <span class="entity-result__badge t-14 t-normal t-black--light"> <div class="display-flex flex-row-reverse align-items-baseline"> <!----> <span class="image-text-lockup__text entity-result__badge-text"> <span aria-hidden="true"><!---->? 2o<!----></span><span class="visually-hidden"><!---->example<!----></span> </span> </div> </span> </span>
我編寫了以下代碼,但沒(méi)有執(zhí)行任何操作。
links = driver.find_elements(By.XPATH, "//span[@class='entity-result__title-text']/a[@class='app-aware-link']") for link in links: href = link.get_attribute("href") link.click() # My Action done and I'm ready to close the website driver.back()
但是什么也沒(méi)發(fā)生。
要?jiǎng)?chuàng)建所需元素的列表,您必須為 visibility_of_all_elements_ located(),您可以使用以下任一定位器策略:
使用CSS_SELECTOR:
links = WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, "span.entity-result__title-text > a.app-aware-link")))
使用XPATH:
links = WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.XPATH, "http://span[contains(@class, 'entity-result__title-text ')]/a[@class='app-aware-link']")))