Селен для в get_attribute - PullRequest
0 голосов
/ 05 мая 2020

URL-адрес, который я использую https://www.leagueofgraphs.com/match/kr/4320209585#participant6

driver.get("https://www.leagueofgraphs.com/match/kr/4320209585#participant6")

SummonerNameLeft = driver.find_elements_by_xpath("//tr//td[1]/div/div[2]/a/div[1]")
SummonerNameRight = driver.find_elements_by_xpath("//tr//td[6]/div/div[2]/a/div[1]")

ChampionsLeft = driver.find_elements_by_xpath("//tr//td[1]/div/div/a/div/img")
ChampionsRight = driver.find_elements_by_xpath("//tr//td[6]/div/div/a/div/img")

ItemsLeft = driver.find_elements_by_xpath("//tr/td[3]/div//img")
ItemsRight = driver.find_elements_by_xpath("//tr/td[4]/div//img")

KdasLeft = driver.find_elements_by_xpath("//tr/td[2]/div[1]")
KdasRight = driver.find_elements_by_xpath("//tr/td[5]/div[1]")

for count in range(0, 5):
    print(ChampionsLeft[count].get_attribute('alt'), "- Name: ", SummonerNameLeft[count].text, " - ",KdasLeft[count].text)
   for ItemsLeftList in ItemsLeft:
        print(ItemsLeftList.get_attribute('alt'))
    print(ChampionsRight[count].get_attribute('alt'), "- Name: ", SummonerNameRight[count].text," - ", KdasRight[count].text)
    for ItemRightList in ItemsRight:
        print(ItemsRightList.get_attribute('alt'))

Я хочу, чтобы мой вывод был таким

Sample:  (According to the information in the link)
Aatox - Name:  EXP BUNZI  -  1 / 4 / 0 
Ninja Tabi
Kindlegem
Doran's Shield
Caulfield's Warhammer
Phage
Warding Totem (Trinket)

, но я не могу позвонить элементы по 1 символу за раз

Ответы [ 2 ]

1 голос
/ 05 мая 2020

Работать построчно:

driver.get("https://www.leagueofgraphs.com/match/kr/4320209585#participant6")

player_rows=driver.find_elements_by_xpath('.//tr[@class="playerRow"]')

for row in player_rows:
    SummonerNameLeft = row.find_element_by_xpath(".//td[1]/div/div[2]/a/div[1]").text
    SummonerNameRight = row.find_element_by_xpath(".//td[6]/div/div[2]/a/div[1]").text

    ChampionsLeft = row.find_element_by_xpath(".//td[1]/div/div/a/div/img").get_attribute('alt')
    ChampionsRight = row.find_element_by_xpath(".//td[6]/div/div/a/div/img").get_attribute('alt')

    ItemsLeft = row.find_elements_by_xpath(".//td[3]/div//img")
    ItemsRight = row.find_elements_by_xpath(".//td[4]/div//img")

    KdasLeft = row.find_element_by_xpath(".//td[2]/div[1]").text
    KdasRight = row.find_element_by_xpath(".//td[5]/div[1]").text

    print(ChampionsLeft, "- Name: ", SummonerNameLeft, " - ",KdasLeft)

    for ItemsLeftList in ItemsLeft:
        print(ItemsLeftList.get_attribute('alt'))

    print(ChampionsRight, "- Name: ", SummonerNameRight," - ", KdasRight)

    for ItemRightList in ItemsRight:
        print(ItemRightList.get_attribute('alt'))
0 голосов
/ 05 мая 2020

Похоже, вы неправильно написали переменную.

Это: print(ItemsRightList.get_attribute('alt'))

Должно быть: print(ItemRightList.get_attribute('alt'))


Изменить: проблема была с //tr. Один из способов сделать это - ниже, где мы меняем tr на основе переменной count.

driver.get("https://www.leagueofgraphs.com/match/kr/4320209585#participant6")

SummonerNameLeft = driver.find_elements_by_xpath("//tr//td[1]/div/div[2]/a/div[1]")
SummonerNameRight = driver.find_elements_by_xpath("//tr//td[6]/div/div[2]/a/div[1]")

ChampionsLeft = driver.find_elements_by_xpath("//tr//td[1]/div/div/a/div/img")
ChampionsRight = driver.find_elements_by_xpath("//tr//td[6]/div/div/a/div/img")


KdasLeft = driver.find_elements_by_xpath("//tr/td[2]/div[1]")
KdasRight = driver.find_elements_by_xpath("//tr/td[5]/div[1]")

for count in range(0, 2):
    print(ChampionsLeft[count].get_attribute('alt'), "- Name: ", SummonerNameLeft[count].text, " - ",KdasLeft[count].text)
    ItemsLeft = driver.find_elements_by_xpath("//tr[{}]/td[3]/div//div//img".format(count + 2))
    for ItemsLeftList in ItemsLeft:
        print(ItemsLeftList.get_attribute('alt'))
    print(ChampionsRight[count].get_attribute('alt'), "- Name: ", SummonerNameRight[count].text," - ", KdasRight[count].text)
    ItemsRight = driver.find_elements_by_xpath("//tr[{}]/td[4]/div//img".format(count + 2))
    for ItemRightList in ItemsRight:
        print(ItemRightList.get_attribute('alt'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...