Python Selenium单击javascript单选按钮

时间:2018-10-12 06:13:44

标签: python selenium web screen-scraping

我对我的脚本的结尾很正确,这必须是我必须经历的最后一页,并且被卡住了。我花了3个小时尝试不同的组合和方法来加载元素。

页面是大量的javascript,因此当我尝试获取页面源代码时

  

This page uses frames, but your browser doesn't support them.

我已经确定窗口内有两个框架,并试图对这两个框架进行所有尝试。

当我尝试选择框架时的结果

**driver.find_element_by_xpath('''//*[@id="three"]/tbody/tr[2]/td/div[2]/a/input''').click()**

error

**Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="three"]/tbody/tr[2]/td/div[2]/a/input"}**

我还在所有框架上都尝试了以下情况,无论是否使用[0]

**driver.find_element_by_xpath('.//input[@type="radio" and @value="05"]')[0].click**

我已经尝试过了,但是也得到了同样的错误

**element = driver.find_element_by_id("reason")**

下面是检查器窗口中代码的屏幕截图。 screenshot of inspector

2 个答案:

答案 0 :(得分:0)

尝试使用驱动程序,单击单选按钮

element = driver.find_element_by_xpath("//table[@id="three"]//input[@name="reason"]")
element.click();

或javascript执行程序

element = driver.find_element_by_xpath("//table[@id="three"]//input[@name="reason"]")
driver.execute_script("arguments[0].click();", element)

答案 1 :(得分:0)

尝试首先切换到包含框架:

parent_frame=driver.find_element_by_css_selector('your selector')
driver.switch_to.frame(parent_frame)

#select the button after

How to identify and switch to the frame in selenium webdriver when frame does not have id