.click()对debian vps selenium phantomjs什么都不做

时间:2017-12-14 13:27:48

标签: python selenium phantomjs

我需要使用selenium和phantomjs webdriver点击提交表单的按钮。

我目前有以下代码在我的本地计算机上运行良好(在archlinux下)

driver.find_element_by_id("lbc_submit").click()

在调用此代码之前,我确保我点击的元素与硒预期条件一起出现。

当我在debian vps服务器上使用相同的webdriver(相同版本)执行相同的代码时,元素存在,因为当我点击它时没有异常,但没有任何事情发生。

这是输入的html(在表单内):

<input class="button-blue" value="Valider mon annonce" name="create" id="lbc_submit" type="submit">

我尝试了以下但没有一个有效:

  • 点击使用javascript
  • 使用javascript提交
  • 将phantomjs webdriver更改为chrome webdriver
  • 在点击之前等待睡眠以确保所有内容都已加载
  • 使用.submit()selenium方法

修改 - 更多信息

这是我点击按钮的整个表单的pastebin(第172行):

https://pastebin.com/ehax7mkQ

我的代码块:

def validate_ad(browser):
    if not adbot_utils.get_page(browser, "", By.ID, "lbc_submit"):
        return false
    browser.find_element_by_id("lbc_submit").click()
    return true

get_page函数:

def get_page(browser, url, by_method, element_path):
    if url:
        browser.get(url)
    try:     
        WebDriverWait(browser,10).until(ec.presence_of_element_located((by_method, element_path)))
    except TimeoutException:
        if url:
            print_log("Failed to load page " + url, 0, __name__)
        else:
            print_log("Failed to load element [" + element_path + "]", __name__)
        return False
    return True

1 个答案:

答案 0 :(得分:0)

而不是:

driver.find_element_by_id("lbc_submit").click()

尝试:

  • <强> xpath

    driver.find_element_by_xpath("//input[@class='button-blue' and @id='lbc_submit']").click()
    
  • <强> css_selector

    driver.find_element_by_css_selector("input.button-blue#lbc_submit").click()