当前位置: 首页 > 知识库问答 >
问题:

python selenium for循环

通鸿风
2023-03-14
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By

PATH ="/Users/kaikeichan/Desktop/python_webpage/chromedriver"
driver = webdriver.Chrome(PATH)
driver.get("https://tsj.tw/")

blow = driver.find_element(By.ID,'click')
blow_count = driver.find_element(By.XPATH,'//*[@id="app"]/div[2]/div[4]/div[2]/h4[2]')
items = []
items.append(driver.find_element(By.XPATH,'//*[@id="app"]/div[2]/div[4]/div[4]/table/tbody/tr[4]/td[5]/button[1]'))
items.append(driver.find_element(By.XPATH,'//*[@id="app"]/div[2]/div[4]/div[4]/table/tbody/tr[3]/td[5]/button[1]'))
items.append(driver.find_element(By.XPATH,'//*[@id="app"]/div[2]/div[4]/div[4]/table/tbody/tr[2]/td[5]/button[1]'))
prices = []
prices.append(driver.find_element(By.XPATH,'//*[@id="app"]/div[2]/div[4]/div[4]/table/tbody/tr[4]/td[4]'))
prices.append(driver.find_element(By.XPATH,'//*[@id="app"]/div[2]/div[4]/div[4]/table/tbody/tr[3]/td[4]'))
prices.append(driver.find_element(By.XPATH,'//*[@id="app"]/div[2]/div[4]/div[4]/table/tbody/tr[2]/td[4]'))

actions = ActionChains(driver)
actions.click(blow)

for i in range(100):
    actions.perform()
    count = int(blow_count.text.replace("您目前擁有", "").replace("技術點", ""))
    for j in range(3):
        price = int(prices[j].text.replace("技術點", ""))
        if count >= price:
            upgrade_actions = ActionChains(driver)
            upgrade_actions.move_to_element(items[j])
            upgrade_actions.click()
            upgrade_actions.perform()
            break

raceback(最近的最后一次调用):File"/User/kaikeichan/Desktop/python_webpage/actionchain.py",第7行,在驱动程序=网络驱动程序中。Chrome(PATH)File"/Library/Framework/Python.framework/Versions/3.10/lib/python3.10/site-packages/selenium/webdriver/chrome/webdriver.py",第70行,在初始化超级(WebDriver, self). init(DesiredCapables. CHROME['BrowserName'],"goog", File"/Library/FraFramework/Python.framework/Versions/3.10/lib/python3.10/site-packages/selenium/webdriver/chromium/webdriver.py",第90行,在初始化self.service.start()File"/Library/FraFramework/Python.framework/Versions/3.10/lib/python3.10/site-packages/selenium/webdriver/common/service.py",第98行,在开始self.assert_process_still_running()File"/Library/FraFramework/Python.framework/Versions/3.10/lib/python3.10/site-packages/selenium/webdriver/common/service.py",第110行,在assert_process_still_running引发WebDriverException(selenium.common.exceptions.WebDriverException:消息:服务 /Users/kaikeichan/Desktop/python_webpage/chromedriver意外退出。状态代码为:-9

共有1个答案

郤令
2023-03-14

据我所知,您在第7行中有一个错误,正如在回溯中指出的那样。

在您定义路径的代码行中,您尝试使用绝对路径。

PATH ="/Users/kaikeichan/Desktop/python_webpage/chromedriver"

这里的问题可能是您没有将正确的路径写入chrome驱动程序文件。您的路径应该在user之前有一个C:(也就是说,如果您的项目存储在计算机中,而不是外部硬盘驱动器或类似的东西),如下所示:

 PATH ="C:/Users/kaikeichan/Desktop/python_webpage/chromedriver"

您可以尝试的另一件事是在chromdriver的末尾添加一个“.exe”,因为它是一个。exe文件,您应该指定该文件。

 PATH ="C:/Users/kaikeichan/Desktop/python_webpage/chromedriver.exe"

我真的希望这能有所帮助,我建议您尝试使用相对路径,因为它对您来说可能更简单。如果您的“.py”python文件位于分配chromdriver文件的同一文件夹中,那么您可以将路径定义为“chromedriver.exe”,这将是对相对路径的有效使用。

 类似资料:
  • 您好,我对jquery没有什么问题。首先,我有: 大众BORA 1.9TDI 1990 1995 奥迪A3 2.0TFSI 2006 2008 但我想实现: VW BORA 1.9TDI 1990 VW BORA 1.9TDI 1991 VW BORA 1.9TDI 1992 VW BORA 1.9TDI 1993 VW BORA 1.9TDI 1994 VW BORA 1.9TDI 1995 A

  • 问题内容: 我第一次不了解PHP。我一直在脚本中使用for循环,while循环,foreach循环。我想知道 哪一个性能更好? 选择循环的标准是什么? 当我们在另一个循环中循环时应该使用哪个? 我一直想知道要使用哪个循环的代码。 很明显,我可以使用while编写上面的代码。希望有人能帮助我找出哪个循环更适合使用。 问题答案: 哪一个性能更好? 没关系 选择循环的标准是什么? 如果只需要遍历对象或数

  • 通常你想在一个任务中干很多事,比如创建一群用户,安装很多包,或者重复一个轮询步骤直到收到某个特定结果. 本章将对在playbook中如何使用循环做全面的介绍. Topics 循环 为了保持简洁,重复的任务可以用以下简写的方式: - name: add several users user: name={{ item }} state=present groups=wheel with_it

  • 循环其实不足为奇。跟其它程序设计语言一样,bash中的循环也是只要控制条件为真就一直迭代执行的代码块。 Bash中有四种循环:for,while,until和select。 for循环 for与它在C语言中的姊妹非常像。看起来是这样: for arg in elem1 elem2 ... elemN do # 语句 done 在每次循环的过程中,arg依次被赋值为从elem1到elemN。这些

  • 尽管已经支持JavaScript原生代码,Jade还是支持了一些特殊的标签,它们可以让模板更加易于理解,其中之一就是each, 这种形式: each VAL[, KEY] in OBJ 一个遍历数组的例子 : - var items = ["one", "two", "three"] each item in items li= item 渲染为: <li>one</li> <li>two</

  • 可能存在需要多次执行代码块的情况。 通常,语句按顺序执行:首先执行函数中的第一个语句,然后执行第二个语句,依此类推。 编程语言提供各种控制结构,允许更复杂的执行路径。 循环语句允许我们多次执行语句或语句组,以下是大多数编程语言中循环语句的一般形式 - Perl编程语言提供以下类型的循环来处理循环要求。 Sr.No. 循环类型和描述 1 while 循环 在给定条件为真时重复语句或语句组。 它在执行

  • 在本章中,我们将了解Loops如何在LESS中工作。 循环语句允许我们多次执行语句或语句组。 当递归mixin与Guard Expressions和Pattern Matching结合使用时,可以创建各种迭代/循环结构。 例子 (Example) 以下示例演示了在LESS文件中使用循环 - loop_example.htm <!doctype html> <head> <link

  • 当您需要多次执行代码块时,可能会出现这种情况。 通常,语句按顺序执行:首先执行函数中的第一个语句,然后执行第二个语句,依此类推。 编程语言提供各种控制结构,允许更复杂的执行路径。 循环语句允许我们多次执行语句或语句组,以下是大多数编程语言中循环语句的一般形式 - Objective-C编程语言提供以下类型的循环来处理循环需求。 单击以下链接以查看其详细信息。 Sr.No. 循环类型和描述 1 wh