不确定我做错了什么,但是当我运行代码时,它按我想要的方式运行,但是当输入文本文件中的文本时,它会执行回车键
import os
from time import sleep
from selenium import webdriver
chrome_path = (r"C:\Users\George\Desktop\case script\romowa\Drivers\chromedriver.exe")
text_file1 = open(r"C:\Users\George\Desktop\case script\romowa\acounts\name.txt", "r")
x = 0 #count up
a=0
while True:
browser = webdriver.Chrome(chrome_path)
browser.implicitly_wait(30)
browser.get('http://www.google.com')
x = x+1
name = text_file1.readlines(x)
browser.find_element_by_name("q").send_keys(name)
sleep(1)
browser.quit()
a = a +1
sleep(1)
答案 0 :(得分:0)
我尝试使用Chrome浏览器的C#绑定:
下面的代码片段将简单地在搜索框中设置值
IWebElement searchInput = webDriver.FindElement(By.Name("q"));
searchInput.SendKeys("Hello");
下面的代码段将在搜索框中设置值并执行搜索
IWebElement searchInput = webDriver.FindElement(By.Name("q"));
searchInput.SendKeys($"Hello {Environment.NewLine}");
注意上述代码中的Environment.NewLine等效于\ n。
摘自readline()的python文档
f.readline()从文件中读取一行;换行符 (\ n)留在字符串的末尾,仅在末尾省略 如果文件未以换行符结尾,则该行。这使得 返回值明确;如果f.readline()返回一个空字符串,则 已到达文件末尾,而空白行表示为 '\ n',仅包含一个换行符的字符串。
readlines()使用readline()读取直到EOF并返回列表 包含线条
清楚地证明,在字符串的末尾保留了换行符\ n。因此,当sendkeys试图写该行时,它也会导致\ n发送来模拟搜索。
我将要求您尝试以下操作并观察结果:
硬编码值
name = "Hello"
browser.find_element_by_name("q").send_keys(name)
使用readline()而不是readlines()从文件中提取单行。确保在其中键入“ Hello”的情况下创建一个新文件,然后保存该文件,而不要按Enter键以添加新行。
name = text_file1.readline(x)
browser.find_element_by_name("q").send_keys(name)
这应该清除一切。