我正在尝试将对象属性名称解析为我方法中的参数,但我得到了
AttributeError: type object 'By' has no attribute 'selector'
这是我的代码:
from selenium import webdriver
from selenium.webdriver.common.by import By
def exist(browser, selector, id):
try:
browser.find_element(browser, By.selector, id)
except NoSuchElementException:
return False
return True
这是我的电话:
if exist(browser, 'ID', '#errorTitleText'):
print 'Element Exists!'
我做错了什么?没有'选择器'参数它正在工作。
答案 0 :(得分:1)
是CSS_SELECTOR
:
browser.find_element(By.CSS_SELECTOR, selector)
您也可以使用:
browser.find_element_by_css_selector(selector)
find_element
需要两个参数, by
和 value
。默认为 by.ID 所以,如果您想使用id
进行搜索,请将其传入。
from selenium import webdriver
from selenium.webdriver.common.by import By
def exist(browser, by_selector, value):
try:
browser.find_element(by_selector, value)
except NoSuchElementException:
return False
return True
然后传入任何你想要的东西:
exist(browser,By.ID, "id_value")
答案 1 :(得分:-1)
这是我方法的最后一个版本:
from selenium import webdriver
from selenium.webdriver.common.by import By
def exist(browser, selector, id):
try:
browser.find_element(By.selector, id)
except NoSuchElementException:
return False
return True
我给了三个属性而不是两个属性!