当我点击时,edit profile link
我会看到一个包含我的个人资料信息的页面。我想在那里设置我的家乡。在我尝试提交之前一切正常。硒告诉我,没有这样的元素。但它就在那里!在开发人员工具中,我什至可以看到它不是display:block
. 有什么问题?它是在新框架中打开还是其他?我找不到保存按钮。我试过ActionChains(driver).move_to_element.click().perform()
了,但它什么也没给我......`谁能解释我如何点击按钮?那里的所有编辑表单中都有相同的按钮...
UPD:它看到文本输入和ajax表单以从建议的选项中进行选择,但不是同一表单中的按钮...我无法理解。
这是我的代码:
def _update_hometown(self):
try:
curr_city = self.driver.find_element(By.ID, u"current_city")
curr_city.find_element(By.CLASS_NAME, u"fbProfileBlankStateIcon").click()
WebDriverWait(self.driver, 15).until(ec.presence_of_element_located((By.ID, u"edit_hometown")))
input_field = self.driver.find_element(By.ID, u"edit_hometown").find_element(By.CLASS_NAME, u"inputtext")
input_field.send_keys(u"Moscow")
input_field.click()
WebDriverWait(self.driver, 15).until(ec.presence_of_element_located((By.CLASS_NAME, u"text")))
self.driver.find_element(By.CLASS_NAME, u"text").click()
self.driver.find_element(By.NAME, "save").click()
except ElementNotVisibleException as NVE:
print "Button not visible! {0}".format(NVE.msg)
self._stack_trace(sys.exc_info())
except TimeoutException as TE:
print "Timeout failure. {0}".format(TE.msg)
except NoSuchElementException as nse:
print 'Error. Element not found! {0}'.format(nse.msg)
import traceback
type_, value_, trace_ = sys.exc_info()
print traceback.format_tb(trace_)
except:
print "Something went wrong."
import traceback
type_, value_, trace_ = sys.exc_info()
print type_, "\t", value_
print traceback.format_tb(trace_)
这是此表单的来源,从开发工具中获取:
链接到 pastebin。facebook 表单源
链接到 patbin。我的代码
UPD:driver.window_handles
只返回一个窗口。