Selenium python登录在本地运行,但不能在Linux服务器上运行

时间:2020-06-15 10:36:23

标签: python selenium xpath css-selectors webdriverwait

我正在尝试通过硒python登录以下网站

https://www.talentwise.com/screening/login.php

当我输入用户名,密码并单击sigin时,所有内容都会全部清除,而不会在ui上显示任何错误消息。(代码在本地工作正常,但在我们的Linux服务器上无法正常工作)

    options = Options()
    options.add_argument("--headless")
    options.add_argument("--no-sandbox")
    options.add_argument("window-size=1200,1100")
    options.binary_location = "parts/chromium/chromium/chrome"
    self.driver = webdriver.Chrome(
        chrome_options=options,
        executable_path='parts/chromium/chromedriver/chromedriver',
    )
    self.driver.maximize_window()
    self.driver.get(url)
    WebDriverWait(self.driver, delay).until(
        EC.presence_of_element_located(
            (By.XPATH, "//input[@id='EmailAddr']")
        )
    ).send_keys(username)
    WebDriverWait(self.driver, delay).until(
        EC.presence_of_element_located(
            (By.XPATH, "//input[@id='Password']")
        )
    ).send_keys(password)
    WebDriverWait(self.driver, delay).until(
        EC.presence_of_element_located(
            (By.XPATH, "//input[@id='SignIn' and @type='submit' and @value='Sign In']")
        )
    ).click()

1 个答案:

答案 0 :(得分:0)

要将字符序列发送到电子邮件地址密码字段,您必须为{{1 }},您可以使用以下任一WebDriverWait

  • 使用element_to_be_clickable()

    CSS_SELECTOR
  • 使用driver.get('https://www.talentwise.com/screening/login.php') WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input#EmailAddr"))).send_keys("OmkarSalgaonkar@stackoverflow.com") driver.find_element_by_css_selector("input#Password").send_keys("OmkarSalgaonkar") driver.find_element_by_css_selector("input#SignIn").click()

    XPATH
  • 注意:您必须添加以下导入:

    driver.get('https://www.talentwise.com/screening/login.php')
    WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//input[@id='EmailAddr']"))).send_keys("OmkarSalgaonkar@stackoverflow.com")
    driver.find_element_by_xpath("//input[@id='Password']").send_keys("OmkarSalgaonkar")
    driver.find_element_by_xpath("//input[@id='SignIn']").click()
    
  • 浏览器快照:

Locator Strategies