【发布时间】:2017-12-14 13:27:48
【问题描述】:
我需要点击提交表单的按钮,使用 selenium 和 phantomjs webdriver。
我目前有以下代码在我的本地计算机上运行良好(在 archlinux 下)
driver.find_element_by_id("lbc_submit").click()
在调用此代码之前,我确保我点击的元素存在 selenium 预期条件。
当我在 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() 硒方法
编辑 - 更多信息
这是我单击的按钮所在的整个表单的 pastebin(第 172 行):
我的代码块:
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
【问题讨论】:
-
请添加 URL 或 HTML
-
我用我点击的按钮的 html 编辑了我的帖子