代码执行回车而不执行命令单击

时间:2018-10-06 21:18:01

标签: python selenium selenium-webdriver selenium-chromedriver

不确定我做错了什么,但是当我运行代码时,它按我想要的方式运行,但是当输入文本文件中的文本时,它会执行回车键

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)

1 个答案:

答案 0 :(得分:0)

我尝试使用Chrome浏览器的C#绑定:

  1. 下面的代码片段将简单地在搜索框中设置值

    IWebElement searchInput = webDriver.FindElement(By.Name("q"));
    searchInput.SendKeys("Hello");
    
  2. 下面的代码段将在搜索框中设置值并执行搜索

    IWebElement searchInput = webDriver.FindElement(By.Name("q"));
    searchInput.SendKeys($"Hello {Environment.NewLine}");
    

    注意上述代码中的Environment.NewLine等效于\ n。

摘自readline()的python文档

  

f.readline()从文件中读取一行;换行符   (\ n)留在字符串的末尾,仅在末尾省略   如果文件未以换行符结尾,则该行。这使得   返回值明确;如果f.readline()返回一个空字符串,则   已到达文件末尾,而空白行表示为   '\ n',仅包含一个换行符的字符串。

对于readlines()

  

readlines()使用readline()读取直到EOF并返回列表   包含线条

清楚地证明,在字符串的末尾保留了换行符\ n。因此,当sendkeys试图写该行时,它也会导致\ n发送来模拟搜索。

我将要求您尝试以下操作并观察结果:

  1. 硬编码值

    name = "Hello"
    browser.find_element_by_name("q").send_keys(name)
    
  2. 使用readline()而不是readlines()从文件中提取单行。确保在其中键入“ Hello”的情况下创建一个新文件,然后保存该文件,而不要按Enter键以添加新行。

    name = text_file1.readline(x)
    browser.find_element_by_name("q").send_keys(name)
    

这应该清除一切。