簡體   English   中英

無法使用 selenium 和 Python 連接到網頁

[英]Cannot connect to webpage using selenium and Python

我正在嘗試連接到特定網頁,但它沒有點擊Login按鈕:

browser.get('https://www.tsago.gr/eshop/account')
print('Browser Opened')
username = browser.find_element_by_id('email')
username.send_keys(email)
password = browser.find_element_by_id('password')

password.send_keys(pwd)
time.sleep(2)
sing_in = browser.find_element_by_xpath('//*[@class="btn btn-primary"]')
sing_in.click()
print('Login Clicked')

我試過按 css、按名稱等查找元素,但我不知道為什么不單擊按鈕以登錄

html部分如下

<div class="span3 float-right" style="float:right;">                                   
   <button type="submit" class="btn btn-primary">Connect</button>
</div>

用戶名和密碼都寫好了,是正確的

看來你已經很接近了。 也許Cookie 消息欄是障礙,您可以接受 cookie或將連接按鈕滾動到視圖中,您可以使用以下解決方案:

  • 代碼塊:

     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 options = webdriver.ChromeOptions() options.add_argument("start-maximized") options.add_argument("--disable-extensions") # options.add_argument('disable-infobars') browser = webdriver.Chrome(chrome_options=options, executable_path=r'C:\\Utility\\BrowserDrivers\\chromedriver.exe') browser.get('https://www.tsago.gr/eshop/account') print('Browser Opened') WebDriverWait(browser, 30).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "input#email[name='email']"))).send_keys("Nikos") browser.find_element_by_css_selector("input#password[name='password']").send_keys("Nikos") browser.execute_script("window.scrollBy(0,250)", ""); browser.find_element_by_css_selector("div.control-group div.span3 button.btn.btn-primary").click() print('Login Clicked')
  • 控制台輸出:

     Browser Opened Login Clicked
  • 瀏覽器快照:

餅干

以下 css Selector 應唯一標識您要查找的按鈕:

driver.find_element_by_css_selector('div.span3.float-right > button')

這對我有用:

driver.find_element_by_css_selector('div.span3 > button[type="submit"]').click()

通常,您應該確保在編碼之前確定正確的元素。 這樣做 - 使用 devTools(在 chrome/firefox 上為 f12),並在“控制台”選項卡中運行您的查詢

對於 xpath 識別嘗試 $x ,即: $x('//button[@type="submit"]')

對於 css 選擇器,像這樣使用 $$$$("div.someClass#someID")

您可以將鼠標懸停在結果上,找到的元素將突出顯示

編輯:我注意到您在使用 css 選項時遇到問題,您也可以嘗試

driver.find_element_by_xpath('//div[contains(@class,"span3")]/button[contains(@class,"btn-primary")]")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM