Python和Selenium Click和"TypeError:字符串索引必须是整数"

Big*_*ike 4 python python-2.7 selenium-webdriver

我目前正在编写一段代码并使用该纪录片完成了许多阅读并查看了许多示例,但我仍无法修复我的错误.我正在使用Python和Selenium Webdriver.

这是问题:我试图从使用Javascript的HTML页面中提取图像.一旦我使用selenium webdriver,就会显示函数调用的结果(在firefox中),但我无法点击页面底部的数字进入第3或第4页.

以下是我遇到的HTML代码问题:

<div class="pagebook" data-reactid=".1.0.2.0"><div style="display:none;" data-reactid=".1.0.2.0.0"></div><div class="active" data-reactid=".1.0.2.0.1:$0">1</div><div class="" data-reactid=".1.0.2.0.1:$1">2</div><div class="" data-reactid=".1.0.2.0.1:$2">3</div><div class="" data-reactid=".1.0.2.0.1:$3">4</div><div class="" data-reactid=".1.0.2.0.1:$4">5</div><div class="" dat<div class="next" style="margin-right:20px;" data-reactid=".1.0.2.0.$6">?</div></div>
Run Code Online (Sandbox Code Playgroud)

我使用xpath功能进行了这个调用: browser.find_element_by_xpath('//div[@data-reactid=".1.0.2.0.1:$2"]').click()

我第一次这样做了几次,然后它给了我一个错误,我再也不能使用它了.错误是:

File "C:\Python27\Lib\site-packages\selenium-2.49.2-py2.7.egg\selenium\webdriver\remote\errorhandler.py", line 111, in check_response
    message = value["value"]["message"]
TypeError: string indices must be integers
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的代码:

browser = webdriver.Firefox()
browser.implicitly_wait(5) #backup wait of 5 seconds just in case
browser.get(url2)
browser.find_element_by_xpath('//div[@data-reactid=".1.0.2.0.1:$2"]').click()
Run Code Online (Sandbox Code Playgroud)

我正在寻求帮助:

  1. 错误
  2. 使用不同的功能进行点击

欣赏它!

ale*_*cxe 6

这是硒2.49中已知的,目前公开的问题.作为解决方法,降级到2.48:

pip install selenium==2.48
Run Code Online (Sandbox Code Playgroud)

我还会改进定位器:

//div[@class="pagebook"]/div[. = "2"]
Run Code Online (Sandbox Code Playgroud)