我正在尝试在XPath中进行累积,这可能吗?

看一下我的代码:

driver = webdriver.Chrome()
driver.get('http://www.imdb.com/user/ur33778891/watchlist?ref_=wt_nv_wl_all_0')
wait = (WebDriverWait, 10)
x = 1
while True:

        try:

                film = driver.find_element(By.XPATH, "((//h3[@class='lister-item-header']/a)[%d]"  % x).text
                x = x + 1
                print(film)


关键是,我正在尝试访问用户监视列表中的IMDB网站,并通过这种方法获得逐个电影的名称,但是正如我所见,不可能为此目的使用%d,硒允许这样做吗?

PS:字符串或数字均无效。

关键是:如果打开IMDB监视列表,将有电影列表,然后的XPath相同// h3 [@ class ='lister-item-header'] / a,但我当时在考虑如何单独选择,我知道可以这样做:

  //h3[@class='lister-item-header']/a [1] #this will select the first movie
  //h3[@class='lister-item-header']/a [2] #this will select the second movie


现在,有没有一种方法可以自动执行此操作?我正在考虑累加器,而不是[1],而是要放入[x]并确定为x = x + 1。

最佳答案

为此使用以下代码:

xpath = "//h3[@class='lister-item-header']/a[{}]".format(x)


之后像这样使用:

film = driver.find_element(By.XPATH, xpath).text


希望对您有帮助!

关于python - XPath中的累加器:可能吗? ( python ),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48583113/

10-16 22:47