ボタンをクリックするためにセレンを取得できません
ウェブサイトの検査要素の 写真詳細写真マイコードスニペット
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from time import sleep
import requests
///
excel = driver.find_element_by_name('Excel')
excel.click()
それを実行しようとすると、これが表示されます。助けていただければ幸いです。
NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[name="Excel"]"}
回答
2 DebanjanB
目的の要素がある角度ので、あなたが誘導しなければならない要素をクリックして、要素WebDriverWaitをするためにelement_to_be_clickable()
、あなたは、次のいずれかを使用することができますロケータ戦略:
使用
CSS_SELECTOR
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button[mat-button] > span.mat-button-wrapper span"))).click()
使用
XPATH
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@mat-button]/span[@class='mat-button-wrapper']//span[text()='Excel']"))).click()
注:次のインポートを追加する必要があります:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
1 hams222
driver.find_element_by_name( 'Excel')は、name = 'Excel'のタグを選択します。
たとえば、次のようなタグが見つかります。
<div name='Excel'>Hello</div>.
find_element_by_nameに相当するCSSは[name = "Excel"]です。
Webサイトのinspect要素の写真から、div内に「Excel」というテキストが含まれる要素を見つけようとしているようです。代わりに、次の関数を使用する必要があります。
driver.find_element_by_link_text('Excel')
お役に立てば幸いです。
PythonセレンWebドライバーの詳細については、このリンクを使用してください。それは私にとって大いに役立ちました!