Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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
如何在Firefox Selenium、python、window中获取属性直到状态发生变化,版本:67.0(64位)和#x2B;硒3.9.0_Python_Selenium_Firefox_Attributes_Webdriverwait - Fatal编程技术网

如何在Firefox Selenium、python、window中获取属性直到状态发生变化,版本:67.0(64位)和#x2B;硒3.9.0

如何在Firefox Selenium、python、window中获取属性直到状态发生变化,版本:67.0(64位)和#x2B;硒3.9.0,python,selenium,firefox,attributes,webdriverwait,Python,Selenium,Firefox,Attributes,Webdriverwait,要确认数据下载是否完成。 目标属性信息如下所示: <richlistitem class="download download-state" active="true" orient="horizontal" onclick="DownloadsView.onDownloadClick(event);" state="1" exists="true" selected="true">....<description class="downloadDetails dow

要确认数据下载是否完成。

目标属性信息如下所示:

<richlistitem  class="download download-state" active="true" 
orient="horizontal" 
onclick="DownloadsView.onDownloadClick(event);" state="1" 
exists="true" selected="true">....<description 
class="downloadDetails downloadDetailsHover" crop="end" 
value="49.5 KB — xxx.com:8080 — 8:09 PM"/><description 
class="downloadDetails downloadDetailsButtonHover" 
crop="end"/></vbox></hbox><toolbarseparator/><button 
class="downloadButton downloadIconShow" 
oncommand="DownloadsView.onDownloadButton(event);" 
tooltiptext="Open Containing Folder"/></richlistitem>

# Current script:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.get("http://stackoverflow.com/")

download_CSV =dr.find_element_by_id('xxxx')
download_CSV.click()
NEW_TAB = driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't')
cur_windows = driver.window_handles # NEW TAB

time.sleep(2)

driver.switch_to.window(cur_windows[1])
driver.get('about:downloads')
# EC.until the download message attribute change script
。。。。
#当前脚本:
从selenium导入webdriver
从selenium.webdriver.common.keys导入密钥
driver=webdriver.Firefox()
驱动程序。获取(“http://stackoverflow.com/")
下载\u CSV=dr.find \u元素\u by \u id('xxxx'))
下载_CSV。单击()
新建\u选项卡=驱动程序。通过\u标记\u名称('body')查找\u元素\u。发送\u键(keys.CONTROL+'t'))
cur_windows=driver.window_句柄#新建选项卡
时间。睡眠(2)
驱动程序.切换到.窗口(当前窗口[1])
获取驱动程序('about:downloads')
#EC.直到下载消息属性更改脚本
如何获取state=“1”(1=表示下载完成,0=尚未完成)或exist=“true”的属性,需要等待state=“1”从“0”/exist=“true”更改后出现? (欢迎使用其他方法定义文件已完成下载)

这个答案不能适用于我的情况。

我不知道这是否可行,但也许您可以在预期的条件下尝试:存在位于的元素

如果网站中没有响应Xpath定位器的其他元素

//richlistitem[@state='1']
也许这可以解决你的问题:

WebDriverWait(driver, 10).until(
                EC.presence_of_element_located((By.XPATH, '//richlistitem[@state="1"]')))

此代码将在10秒内查找元素“//richlistitem[@state='1']”,直到该元素位于DOM上,否则它将返回TimeoutException

其最终工作方式,使用CSS_选择器并右键单击复制CSS选择器(即
。下载