我正在尝试使用selenium为kukube游戏编写bot。这是我的密码
from selenium import webdriver
driver = webdriver.Firefox()
def clickOnValidElement(driver):
elements = driver.find_elements_by_css_selector("#box span")
styles = [element.get_attribute("style") for element in elements]
for element in elements:
if (styles.count(element.get_attribute("style")) == 1):
element.click()
break
clickOnValidElement(driver)
driver.get("http://106.186.25.143/kuku-kube/en-3/")
driver.find_element_by_css_selector('.play-btn').click()
clickOnValidElement(driver)
但在我看来这不是一个有效的算法。我认为还有另一种方法,不是逐个迭代所有列表。我是python新手,所以请帮我找出如何获得具有唯一属性的对象的索引。你知道吗
升级版 以下是样式列表的示例:
[
'background-color: rgb(88, 83, 124);',
'background-color: rgb(193, 188, 229);',
'background-color: rgb(88, 83, 124);',
'background-color: rgb(88, 83, 124);'
]
问题还是一样的:如何得到唯一元素的索引?你知道吗
升级2 好的,我更新了算法。好一点,但是。。。嗯,还是相信那会更快:)
from selenium import webdriver
driver = webdriver.Firefox()
def clickOnValidElement(driver):
try:
elements = driver.find_elements_by_css_selector("#box span")
styles = [element.get_attribute("style") for element in elements]
unique = list(set(styles))
for style in unique:
if (styles.count(style) == 1):
elements[styles.index(style)].click()
break
clickOnValidElement(driver)
except Exception:
print("Time is out.")
driver.get("http://106.186.25.143/kuku-kube/en-3/")
driver.find_element_by_css_selector('.play-btn').click()
clickOnValidElement(driver)
天真的循环中断版本,是完美的Python它的简洁,清晰,高效。你知道吗
脚本运行缓慢的原因可能是
selenium web driver
。你知道吗相关问题 更多 >
编程相关推荐