如何将我的document.txt中的特定行添加到具有特定ID的YouTube评论字段,然后移至我的document.txt的下一行。 YouTube评论字段的ID为“ contenteditable-root”。我已经创建了这段代码,但是在YouTube评论字段中添加的文本显示在方括号中,例如[“ Hello”]
或者在第二个示例中什么也不显示
示例1:
file = 'comments.txt'
File.readlines(file).each do |i|
files = [i]
files.each { |val|
browser.execute_script("document.getElementById('contenteditable-root').innerHTML = '#{files}';")
}
end
示例2:
line_number = 1
loop do
comments = IO.readlines('comments.txt')[line_number-1]
browser.execute_script("document.getElementById('contenteditable-root').innerHTML = '#{comments}';")
line_number += 1
end
comment.txt文件:
Hellooo !!
hi
Goodbye
Goodnight
答案 0 :(得分:1)
假设这里的其他所有内容都是正确的,那么您所做的迭代很奇怪,您应该使用:
file = 'comments.txt'
File.readlines(file).each do |i|
browser.execute_script("document.getElementById('contenteditable-root').innerHTML = '#{i}';")
end
答案 1 :(得分:0)
在我看来,您需要学习如何调试。
第1步::签入setwd("E:/IA/RBuilds/Consolidation") #folder with spreadsheets
library(readxl)
data.files = list.files()
df <- readxl::read_excel(data.files[1], sheet=1) #reading the first file of list
for (file in data.files[-1]) {
newFile <- readxl::read_excel(file, sheet=1)[-1,] ## Drops the first row
df <- merge(df, newFile, all=T)
}
(about irb),以确保您的代码打印出正确的文本:
irb
预期输出:
File.readlines('comments.txt').each do |line|
p line
end
如果没有,则查找how to read a file per line。
步骤2:您的Java脚本是否有效?
转到您要测试的页面,打开调试器(F12)并直接从控制台运行Javascript:
=> "Line 1"
=> "Line 2"
=> "Line 3"
如果它不起作用,则尝试在Javascript上进一步学习如何与元素交互。
第3步:我的代码实际上是否可以在Watir上正常工作?
再次打开document.getElementById('contenteditable-root').innerHTML = 'hi';
并尝试
irb
如果失败,请搜索错误,查找Watir和execute_script。
然后最终在require 'watir'
b = Watir::Browser.new
b.goto 'https://youryoutubepage.com/path'
b.execute_script("document.getElementById('contenteditable-root').innerHTML = 'hi';")
中运行代码的整个组合:
irb
一个关于您的require 'watir'
b = Watir::Browser.new
b.goto 'https://youryoutubepage.com/path'
File.readlines('comments.txt').each do |line|
b.execute_script("document.getElementById('contenteditable-root').innerHTML = 'hi';")
sleep 5 # Give yourself some time to visually confirm the changes.
end
的快速Google,我发现SyntaxError: Invalid or unexpected token (Selenium::WebDriver::Error::UnknownError)
不喜欢的报价可能有问题。
也许尝试反转报价:
execute_script
将来,请尝试查明问题,不要将StackOverflow用作调试代码的地方。让您的代码逐步工作,并将您的问题集中在无法正常工作的特定功能上。