Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用selenium和Python连接到网页_Python_Selenium_Web Scraping_Webdriver_Webdriverwait - Fatal编程技术网

无法使用selenium和Python连接到网页

无法使用selenium和Python连接到网页,python,selenium,web-scraping,webdriver,webdriverwait,Python,Selenium,Web Scraping,Webdriver,Webdriverwait,我正在尝试连接到特定网页,但它没有单击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)

我正在尝试连接到特定网页,但它没有单击
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>

连接

用户名和密码已写入且正确

以下css选择器应唯一标识您要查找的按钮:

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")]")

看起来你很接近。可能Cookies消息栏是障碍,您可以接受Cookies或滚动连接按钮进入视图,您可以使用以下解决方案:

  • 代码块:

    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
    
  • 浏览器快照:


尝试
sing\u in=browser。通过xpath('//button[@type=“submit”]')查找元素。
No nothing。。有没有办法单击“按代码输入”?而是通过点击按钮?也许它需要专注?