所以我的问题是我似乎无法在“ BV”和“ enemyLevel”的正确xpath中找到/写入
BV表示“战斗价值”
为了测试我已经创建了一个用户并通过
游戏:https://s9-en.bitefight.gameforge.com/user/login 用户:testaccount123 通过:python123
我仅在敌人等级<= 1,BV <= 51
时才需要攻击如果不是“再次搜索”
我的代码在碰到上面的页面时失败
from selenium import webdriver
import time
import re
driver = webdriver.Chrome("C:\\Users\\JC
WIN10\\PycharmProjects\\BitefightPvpBOT\\drivers\\chromedriver.exe")
driver.set_page_load_timeout(10)
driver.get("https://s9-en.bitefight.gameforge.com/user/login") # SERVER LOGIN PAGE
driver.find_element_by_name("user").send_keys("testaccount123") # USERNAME
time.sleep(1)
driver.find_element_by_name("pass").send_keys("python123") # PASSWORD
time.sleep(1)
driver.find_element_by_class_name("btn-small").click() # LOGIN BUTTON
time.sleep(1)
driver.get("https://s9-en.bitefight.gameforge.com/robbery/index") # HUNT PAGE
time.sleep(1)
driver.find_element_by_name("optionsearch").click() # Werewolf Hunt
time.sleep(2)
BV = driver.find_element_by_xpath('//td[contains(text(),'')]')
enemyLevel = driver.find_element_by_xpath("//td[contains(text(),'1')]")
print(enemyLevel.text, BV.text)
while enemyLevel <=1, BV <=51:
driver.find_element_by_xpath("//form/div/div/button").click() # ATTACK
time.sleep(1)
if enemyLevel >= 1, BV >=51:
driver.find_element_by_name("optionsearch").click()
答案 0 :(得分:2)
您可以将所需值检查为
enemyLevel = int(driver.find_element_by_xpath('//td[.="Level:"]/following-sibling::td').text)
BV = int(driver.find_element_by_xpath('//td[.="Battle value:"]/following-sibling::td').text)
if enemyLevel <= 1 and BV =< 51:
...
else:
# search for another victim