测试人社区

关于selenium的学习有几个不懂的问题找不到原因,请指教一下

driver.get(‘http://www.baidu.com’)
问题1:
driver.find_element_by_xpath("//from[@id=‘form’]/span/input").send_keys(’’) 中的‘("//from[@id=‘form’]/span/input")’属性值,在网页源代码中找不到,该怎么去查找?且该怎么理解这段代码?

问题2:以下代码中在pycharm中启动不了浏览器,也已经安装浏览器所需环境,就是一直找不到原因,请问一下该怎么解决?

Generated by Selenium IDE

import pytest
import time
import json
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

class TestTestopen():
def setup_method(self, method):
self.driver = webdriver.Firefox()
self.vars = {}

def teardown_method(self, method):
self.driver.quit()

def test_testopen(self):
self.driver.get(“https://ceshiren.com/”)
self.driver.set_window_size(998, 692)
self.driver.find_element(By.ID, “ember22”).click()
self.driver.find_element(By.CSS_SELECTOR, “#ember139 .category-name”).click()
self.driver.close()

以下简单输入却可以启动pycharm的浏览器
from selenium import webdriver
driver=webdriver.Firefox()
driver.get( ‘https://www.baidu.com/’)
driver.find_element_by_name(“wd”).send_keys(‘大道至简’)

问题一

  • 这个你应该是写错了吧 driver.find_element_by_xpath("//from[@id=‘form’]/span/input").send_keys(’’)
    这句语句中 //后面的相当于是html的标签名 from多半应该是form 表单元素
  • [@id=‘form’]这部分就是进一步过滤form元素的属性 id 为 form 的这些元素才会被定位到 后面的/表示子节点 也就是找到这个符合的form之后再找它的子节点是span标签的,并且span的子节点是input标签的 然后定位到通过这样过滤 能找到的Input标签

问题二

  • 代码清使用Markdown格式书写,不然的话格式都没有了 python是通过缩进表示层级的 没有缩进的话有些内容没办法判断具体情况
  • 你可能对pytest框架还不太了解,代码是没有问题的,但是上面那一段代码是需要以pytest运行方式来运行才能够被执行,因为里面只有方法的定义而并没有方法的调用,需要框架去调用对应的方法来运行才能生效

在pycharm中运行代码未能按照pytest方式运行

1.pycharm是否设置pytest为默认测试运行方式:
2.命名规范是否符合默认用例收集规则(未修改用例收集规则)
  • 文件名需要符合 test_*.py*_test.py 的文件
  • 在符合的文件中,未在类中定义的函数,并且函数名以test开头的函数,会被收集为测试用例
  • 在符合的文件中,类名以Test开头,类中不含有构造方法( __init__() 方法),并且方法名以test开头的方法,会被收集为测试用例
3.清除旧的运行记录
  • 在pycharm右上角如图点击

    c45fcc11-ebf9-48c2-a308-97f069fdf24e-4421845

  • 将其中的记录都删掉(选中后使用减号),只剩下Templates一项

4.查看py文件存放目录
  • 不要将文件存放在venv目录下,该目录是venv虚拟环境的管理目录,不能随意修改,放在其中的代码也不会被pycharm认为是正常的代码,所以不要操作该目录,代码放在项目文件夹根目录或者在项目文件夹中新建包进行管理