Python&;硒点击和;TypeError:字符串索引必须是整数;

Python&;硒点击和;TypeError:字符串索引必须是整数;,python,python-2.7,selenium-webdriver,Python,Python 2.7,Selenium Webdriver,我目前正在编写一段代码,并使用该纪录片阅读了许多资料,并查看了许多示例,但我仍然无法修复我的错误。我正在使用Python和SeleniumWebDriver 问题是:我试图从使用Javascript的HTML页面中提取图像。一旦我使用selenium webdriver,函数调用的结果就会显示出来(在firefox中),但我无法单击页面底部的数字进入第三或第四页 以下是我遇到问题的HTML代码: <div class="pagebook" data-reactid=".1.0.2.0"&g

我目前正在编写一段代码,并使用该纪录片阅读了许多资料,并查看了许多示例,但我仍然无法修复我的错误。我正在使用Python和SeleniumWebDriver

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

以下是我遇到问题的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>
以下是我正在使用的代码:

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()
我需要的帮助包括:

  • 错误
  • 使用不同的功能单击
  • 谢谢你

    这是硒2.49中的a。作为解决方法,请降级到2.48:


    我还将改进定位器,以:

    //div[@class="pagebook"]/div[. = "2"]
    

    我没有看到Selenium 2.47的错误。我不必更改任何XPath

    是否有完整的错误消息?@furas这是主要错误消息:“TypeError:字符串索引必须是整数”。我应该包括整个回溯吗?我安装了2.48。当我运行程序的网页仍然没有改变。你对如何从html中提取它还有其他想法吗?我在使用您的定位器时遇到的错误:selenium.common.exceptions.InvalidSelectorException:Message:给定的选择器//div[@class“pagination”]/div[.=“2”]无效或未生成WebElement。出现以下错误:InvalidSelectorError:由于以下错误,无法找到xpath表达式为//div[@class“pagebook”]/div[.=“2”]的元素:语法错误:表达式不是合法表达式。@BigMike您缺少
    @class
    后面的
    =
    。这不是我提供的选择器。现在它似乎起作用了。关于如何在不使用xpath函数(通过xpath查找元素)的情况下在HTML页面底部找到该按钮,您还有其他想法吗?@BigMike假设您指的是下一个按钮,这会起作用:
    driver.find\u element\u by\u css\u selector(“div.next”)
    。是的,这会起作用,但如果我特别想要页面“2”呢?有办法吗?
    pip install selenium==2.48
    
    //div[@class="pagebook"]/div[. = "2"]