Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python/Selenium中是否启用函数_Python_Selenium - Fatal编程技术网

在Python/Selenium中是否启用函数

在Python/Selenium中是否启用函数,python,selenium,Python,Selenium,我正在尝试创建一个脚本,刷新页面,直到为某个项目(在我的例子中是GPU)启用BUY Btn。 对这件事很陌生,我不知道我做错了什么 提前谢谢 不购买按钮时: 尝试: addButton=浏览器。通过类名称(“addToCartLabel\uYzavx”)查找元素。是否启用() 如果addButton.is_enable(): addButton.click() else:browser.refresh() 除: addToCartBtn=addButton=browser。通过类名称(“addT

我正在尝试创建一个脚本,刷新页面,直到为某个项目(在我的例子中是GPU)启用BUY Btn。 对这件事很陌生,我不知道我做错了什么

提前谢谢

不购买按钮时:
尝试:
addButton=浏览器。通过类名称(“addToCartLabel\uYzavx”)查找元素。是否启用()
如果addButton.is_enable():
addButton.click()
else:browser.refresh()
除:
addToCartBtn=addButton=browser。通过类名称(“addToCartLabel\uYzavx”)查找元素
打印(“BtnClick”)
addToCartBtn.单击()
buyButton=True
在声明“addButton”时,您已经添加了“.is_enabled()”

您的if条件的读数类似于“addButton.is_enabled().is_enabled()

如果删除第一个“.is_enabled()”,它应该可以工作

try:
addButton = browser.find_element_by_class_name("addToCartLabel_YZaVX")
if addButton.is_enabled():
    addButton.click()
else: browser.refresh()
这个怎么样

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
try:
    addButton=WebDriverWait(browser,5).until(EC.element_to_be_clickable((By.CLASS_NAME,"addToCartLabel_YZaVX")))
    addButton.click()
except :
    print("Couldn't find the button, doing some other action here)
    #do other stuff here...
    pass

您正在检查按钮是否使用Selenium的
is_enabled()
启用,该按钮将返回布尔值 所以当你这么做的时候

addButton=browser.find_element_by_class_name(“addToCartLabel_YZaVX”)。是否启用()
如果调用
之前指定的按钮已启用()
方法实际上已启用(True)或未启用(False),则可以预期
addButton
True
False

因此,在下一行中,您将检查布尔值是否已启用,但它将不起作用:)

让我们只更改一些名称并进行一些自我解释的编码:

不购买按钮时:
尝试:
addButton=浏览器。通过类名称(“addToCartLabel\uYzavx”)查找元素
isAddButtonEnabled=addButton.is_已启用
如果isAddButtonEnabled():
addButton.click()
else:browser.refresh()
除:
addToCartBtn=addButton=browser。通过类名称(“addToCartLabel\uYzavx”)查找元素
打印(“BtnClick”)
addToCartBtn.单击()
buyButton=True
这里有一个无限循环,等待元素被点击10秒,否则刷新页面。还有4个同名的类

进口

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC

你忘了问一个问题;)嗯,我的代码还有其他问题。它将进入例外部分,即使BTN是禁用的。thx BTW类名可能没有正确定义…尝试单击添加到购物车BTNthx,但它是一个缺货项目,我想刷新,直到Buy BTN启用。我不认为在这种情况下,code工作。产品:好吧,我当然不会为你写完整的代码……检查按钮名称与其他页面上的按钮是否有效,将其放入一个循环中,你可以刷新页面,然后运行try/except。顶部的“from…”内容只是为了帮助你理解导入要求。
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC