のために、私はExcelスプレッドシート内のループのためにデータを書き込むしようとしている中でcsvファイルを書き込むことはできません、私は最終的には、次のようなコードを持つようにしたいです、それは私がそれ好きな方法を動作しませんので、私はこのようにそれを行う必要があり、ここでセレンPythonが適切にループ
Main.py
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import csv
from selenium.webdriver.support.ui import WebDriverWait
import unittest
class Test():
# filename = "list.csv"
# f = open(filename,"w")
# headers = "listing name, aval \n"
# f.write(headers)
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.get("https://orlando.craigslist.org/search/apa?s=100")
self.filename = "list.csv"
self.f = open(self.filename,"w")
self.headers = "listing name, aval \n"
self.f.write(self.headers)
def task(self):
driver = self.driver
filename = self.filename
f = self.f
headers = self.headers
ln = driver.find_elements_by_xpath('//*[@id="sortable-results"]/ul/li/p/a')
size = len(driver.find_elements_by_xpath('//*[@id="sortable-results"]/ul/li/p/a'))
for i in range(0, size):
ln = driver.find_elements_by_xpath('//*[@id="sortable-results"]/ul/li/p/a')
ln = ln[i]
f.write(ln.text + ",")
self.getLn(ln)
ln = ln.click()
av = driver.find_element_by_xpath('/html/body/section/section/section/div[1]/p[1]/span[2]')
f.write(av.txt + "\n")
self.getAv(av)
back = driver.find_element_by_xpath('/html/body/section/header/nav/ul/li[3]/p/a').click()
if i == 5:
f.close()
break
def getLn(self,ln):
driver = self.driver
ln = ln
if ln:
print (ln.text)
else:
print ("No listing name")
def getAv(self,av):
driver = self.driver
if av:
print (av.text)
else:
print ("No listing name")
def initialize():
return Test
def teardown(self):
self.driver.quit()
run = Test()
run.setUp()
tas = run.task()
run.teardown()
if __name__ == '__main__':
unittest.main()
以下のコードは、それは動作しますが、それは輸出をdoes't私もそれが欲しいのようにCSV上で。
私は最終的に、このように同じ行にまとめて出力したい:
f.write(ln.text + "" + av.text + "\ n" は)
私はどのように行うだろうこの ?
あなたが実際にあなたは何... 'csv'モジュールを使用することはありませんここに質問?あなたは何をしたいのですか?あなたは何を得ていますか? –
ループ のために、私は はAttributeErrorを取得するにはどのように私は f.write(ln.text + "" + av.text + "\ n" は) を書くでしょう: 'NoneType' オブジェクトが「何の属性を持っていませんテキスト ' – BARNOWL
エラーが発生した場合は、質問に投稿する必要があります。 –