[英]selenium in python. trying to select element
更新:我在原始帖子中發現了導致問題的原因,但不知道如何解決。 這是我的更多代碼。 我首先進行了搜索,然后我在 firefox 中的頁面跳轉到 www.flickr.com/searc/?text=volleybal。 但顯然我的瀏覽器 object 仍然位於 www.flickr.com 上。 我該如何更新它?
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('https://www.flickr.com')
s = browser.find_element_by_id('search-field')
s.send_keys('volleyball')
s.submit()
s = browser.find_element_by_class_name("style-button")
#s = browser.find_element_by_xpath("//li[@data-style-value = 'minimalism']")
s.click()
原帖:
我正在試驗 selenium,我想 select 以下元素:
<li class="style-button minimalist" data-style-value="minimalism" data-tooltip-title="Minimalist" tabindex="0" role="button" aria-label="Minimalist">
我嘗試了以下方法,但它們都不起作用:
s = browser.find_element_by_class_name("style-button minimalist")
s = browser.find_element_by_class_name("style-button.minimalist")
s = browser.find_element_by_css_selector("li.style-button.minimalist")
s = browser.find_element_by_css_selector(".style-button.minimalist")
我怎樣才能 select 這個元素?
您可以在這里嘗試 XPath:
s = browser.find_element_by_xpath("//li[contains(@class, 'style-button')]")
希望這個對你有幫助。
解決了。 在s.submit()
browser.refresh()
)
最好的選擇是使用絕對 xpath 。 該按鈕將是:
/html[1]/body[1]/div[1]/div[1]/div[3]/div[1]/div[1]/div[1]/div[2]/ul[1]/li[3]
此外,我發現有時頁面沒有加載,selenium搜索元素,導致錯誤。 您可以等待元素出現。 您可以在此處找到更多信息。
結合這些,您的代碼將是:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
browser = webdriver.Firefox()
browser.get('https://www.flickr.com/')
s = browser.find_element_by_id('search-field')
s.send_keys('volleyball')
s.submit()
s = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.XPATH, "/html[1]/body[1]/div[1]/div[1]/div[3]/div[1]/div[1]/div[1]/div[2]/ul[1]/li[3]")))
s.click()
您的代碼完美運行
嘗試為您使用的操作系統下載最新版本的geckodriver並設置您的executable_path
它應該像這樣
browser = webdriver.Firefox(executable_path="./geckodriver")
並再次嘗試運行您改進的代碼
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.