亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

即使找到元素后也無法單擊元素-Python selenium

即使找到元素后也無法單擊元素-Python selenium

SMILET 2022-10-25 15:16:16
加載更多按鈕讓我痛苦了一段時間。我正在尋找創建一個循環,我在 Linkedin 頁面的技能部分單擊“加載更多”。但是,此按鈕并未始終被單擊。我的印象是問題在于該元素在頁面上不可見。所以,我有一個分段滾動,它繼續向下移動頁面,直到找到元素。但令人費解的是,即使頁面現在移動到了正確的位置,元素并沒有被點擊。沒有錯誤被拋出。我已經嘗試了幾乎所有版本的元素位置(xpath、類名、css 選擇器、完整的 xpath)。如果按鈕在頁面上可見,為什么不單擊該按鈕?相關代碼:##log into Linkedinlinkedin_urls=['https://www.linkedin.com/in/julie-migliacci-revent/']ChromeOptions = webdriver.ChromeOptions()driver = webdriver.Chrome('C:\\Users\\Root\\Downloads\\chromedriver.exe')driver.get('https://www.linkedin.com/login?fromSignIn=true&trk=guest_homepage-basic_nav-header-signin')driver.maximize_window()WebDriverWait(driver, 10).until(    EC.element_to_be_clickable((By.NAME, "session_key"))).send_keys("EMAIL")WebDriverWait(driver, 10).until(    EC.element_to_be_clickable((By.NAME, "session_password"))).send_keys("PASSWORD")WebDriverWait(driver, 10).until(    EC.element_to_be_clickable((By.XPATH, "//button[@class='btn__primary--large from__button--floating']"))).click()linkedin_urls=['https://www.linkedin.com/in/julie-migliacci-revent/', 'https://www.linkedin.com/in/kathleen-meyers-126a7931']for linkedin_url in linkedin_urls:   driver.get(linkedin_url)   looking_for_element = True   ldmore = ''   while looking_for_element:       elements = driver.find_elements_by_xpath('/html/body/div[7]/div[3]/div/div/div/div/div[2]/main/div[2]/div[6]/div/section/div[2]/button/span[1]')       if len(elements) > 0:          ldmore = elements[0]          ldmore.click()          looking_for_element = False       else:           global_copyright = driver.find_elements_by_css_selector('#globalfooter-copyright')           if len(global_copyright) > 0:               looking_for_element = False           else:               body = driver.find_element_by_css_selector('body')               sleep(5)               body.send_keys(Keys.PAGE_DOWN)當底層解決方案不可見時,我還沒有看到關于元素問題的討論。該代碼旨在在找到元素后停止 - 并且正確執行此操作。但它只是沒有點擊元素。我不確定這是為什么。
查看完整描述

1 回答

?
胡說叔叔

TA貢獻1804條經驗 獲得超8個贊

@Datanovice 建議使用 javascript 來強制點擊就像一個魅力。最初,當我嘗試調整解決方案時,我收到了錯誤selenium.common.exceptions.WebDriverException: Message: unknown error: Cannot read property 'click' of null。

這個錯誤是因為我一直在使用EC.element_to_be_clickable. 相反,當我將 java 方法與 配對時EC.visibility_of_element_located,單擊始終有效。

編碼:

ldmore = WebDriverWait(driver, 30).until(EC.visibility_of_element_located((By.XPATH,'xpath')))
driver.execute_script("arguments[0].click();", ldmore)


查看完整回答
反對 回復 2022-10-25
  • 1 回答
  • 0 關注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號