繁体   English   中英

Selenium,弹出窗体(Python)

[英]Selenium, pop up form (Python)

我正在尝试填写某些网页上的表单。 我在大多数页面上取得了成功,但是某些页面却给我带来了麻烦。

有些页面的格式在页面本身最初看不到表单,而是需要单击一个按钮,然后在页面中弹出一个(似乎是JavaScript),然后需要填充。

我环顾四周,看过一些例子,说明如何填写在新弹出窗口中创建的表单以及在警报窗口中创建的表单。 但是我似乎无法找到任何可以解决这种特殊情况的例子。

这是我到目前为止的代码。

     driver = webdriver.Chrome()
     driver.implicitly_wait(10)

     mouse = webdriver.ActionChains(driver)    
     driver.get(url)

     driver.maximize_window()

     value = 'fill form'
     span_xpath = '//span[contains(text(), "' + value + '")]'
     span_element = driver.find_element_by_xpath(span_xpath)
     mouse.move_to_element(span_element).click().perform()
     time.sleep(5)

一切正常,直到这里,点击填写表单按钮,打开浏览器页面中的表单。

但是当执行以下操作时总会出现错误:“没有这样的元素:无法定位元素”

     n =driver.find_element_by_id('name')
     n.send_keys('john smith')

我试图找到元素,名称,ID,xpath等,但无论尝试什么,它都找不到任何表单元素。

我非常感谢对此事的任何帮助。

首先使用driver.switch_to_frame(0) (parent iFrame)切换,然后使用driver.switch_to_frame(1) (chiled iFrame) driver.switch_to_frame(0) (parent iFrame)切换,然后find the element

注意:您可以使用id,name,xpath等标识框架,而不是使用index ,就像任何其他Web元素一样,并将该元素作为参数传递给switch_to_frame。 这提供了更多的一致性

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM