ボットに送信ボタンをクリックさせようとしています。
<div class="usertext-buttons">
<button type="submit" onclick="" class="save">save</button>
<button type="button" onclick="return cancel_usertext(this);" class="cancel" style="display:none">cancel</button>
<span class="status"></span></div>
2番目の行の要素を取得したい type="submit"
driver.find_element_by_xpath
xpathは投稿ごとに異なるため、機能しません。一般的に機能するものをここに引っ張ることができますか?
保存としてテキストを含む要素をクリックするには、次のロケーター戦略のいずれかを使用できます。
使用css_selector
:
driver.find_element_by_css_selector("button.save[type='submit'][onclick]").click()
使用xpath
:
driver.find_element_by_xpath("//button[@class='save' and text()='save'][@type='submit' and @onclick]").click()
理想的には、あなたが誘導しなければならない要素をクリックするWebDriverWaitをするためにelement_to_be_clickable()
、あなたは、次のいずれかを使用することができますロケータ戦略:
使用CSS_SELECTOR
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.save[type='submit'][onclick]"))).click()
使用XPATH
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@class='save' and text()='save'][@type='submit' and @onclick]"))).click()
注:次のインポートを追加する必要があります:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加