我需要使用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">
我尝试了以下但没有一个有效:
修改 - 更多信息
这是我点击按钮的整个表单的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
答案 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()